• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Diş veri ile veriler değiştiğinde formül çalışmıyor.

Katılım
10 Mart 2009
Mesajlar
42
Excel Vers. ve Dili
2003
Merhabalar;

Ekteki excel dosyamın "ana" sayfasında, sarı ile boyanmış hücrelerdeki formüller, omv_db isimli sayfadaki verilere göre çalışıyor. omv_db sayfasının içeriği de webden inen bir .csv dosyasından "dış veri al" yöntemi ile oluşuyor ve excel dosyası her açıldığında omv_db sayfasındaki veriler kendini güncelliyor. Fakat güncellemeden sonra "ana" sayfadaki formüller çalışmıyor.

Biraz karmaşık bir yapı gibi görünebilir ve umarım anlatabilmişimdir. Siz değerli excel mühendislerinin yardımlarna muhtacım. Aynı sonucu verecek alternatif çözümlere açığım, ücretli destek alabilirim.

omv.rar içinde .csv dosyası mevcut

Teşekkürler.
 

Ekli dosyalar

Merhaba,

Çalışmadığını nasıl anlamamız gerekiyor. Dosyanıza bakınca bir sorun göremedim.

Daha detaylı açıklarmısınız.

Ayrıca dış veri alırken hesaplamalarda sorun yaşamamak için ayıraçları değiştirmenizi tavsiye ederim.

.
 
Merhaba;

Şöyle anlayabilirsiniz. hesap.xls dosyasını ilk indirdiğinizde AN24 hücresinde veri var sonuç 63. Ancak omv_db sayfası güncellendiğinde bu veri kayboluyor. Halbuki 63 sonucu hala omv_db sayfasında mevcut, güncellemede sadece yeni kayıtlar sayfaya ilave oluyor fakat formül bunu getiremiyor.

Ayıraçları biraz daha açabilir misiniz.
 
"Güncellemeyi yaptıktan sonra sonuç getirmiyor" dediğiniz dosyayı da eklermisiniz. ( Kısaca güncellemeyi yapıp ve sonucu alamadığınız dosyayı eklermisiniz. )

.
 
omv.rar dosyasının içinde güncelleyen csv dosyasını bulabilir siniz?
 
Bu istediğim çok zor olmasa gerek diye düşünüyorum. Çünkü ben bahsettiğiniz hatayı göremiyorum.

.

size aynen katılıyorum. Buyrun dosyaları yeniden ekledim.

hatayı görmek için lütfen şöyle yapınız.

rar dosyasında ki xls ve cvs dosyalarını aynı klasör içine çıkartın ve hesap.xls dosyasını açın. Çıkan uyarıya "otomatik yenilemeyi devre dışın bırak" ı seçin. ana sayfadaki sarı hücreler içindeki formüllere bakınız, formüller çalışıyor.

daha sonra dosyayı kaydetmeden kapatın ve otomatik yenilemeyi etkinleştir i seçerek tekrar açın. size omv.csv dosyasını sorduğunda da dosyayı gösterin. Böylece omv_db sheet teki veriler güncellleniyor fakat ana safyadaki formüller çalışmıyor.
 

Ekli dosyalar

Güncelemeden sonra toplam alanındaki verilerde sayı olmayan değerler var.

Örnek; ( Bakınız )

D120
D236

Aynı şekilde I sütununda da sayı olmayan değerler var.

2. mesajımda konuyla ilgili söylediğim nedenden kaynaklanıyor. "omv" dosyasına dış veri almadan önce ayıraçları değiştirmeniz gerekir.

Konu ile ilgili link; ( 1 - a seçeneğindeki açıklamaları okuyunuz. )

Excel'in sistem biçimine uygun olmayan verilerin, biçimini düzeltme yolları

.
 
Herhalde dış veri alırken sonunda dosya bağlantılarını kaldırmadığınızdan dosya açılışta o uyarıyı veriyor.

bu makroyu çalıştırırmısınız. daha sonra dosyayı kayıt edin ve yeniden açın.

Kod:
Sub bağlantılarısil()
Dim qt As QueryTable
For i = 1 To ActiveWorkbook.Sheets.Count
For Each qt In Sheets(Sheets(i).Name).QueryTables
qt.Delete
Next qt
Next
MsgBox "işlem tamam"
End Sub
 
Güncelemeden sonra toplam alanındaki verilerde sayı olmayan değerler var.

Örnek; ( Bakınız )

D120
D236

Aynı şekilde I sütununda da sayı olmayan değerler var.

2. mesajımda konuyla ilgili söylediğim nedenden kaynaklanıyor. "omv" dosyasına dış veri almadan önce ayıraçları değiştirmeniz gerekir.

Konu ile ilgili link; ( 1 - a seçeneğindeki açıklamaları okuyunuz. )

Excel'in sistem biçimine uygun olmayan verilerin, biçimini düzeltme yolları

.


İlginize teşekkürler.

Adımları aynen uyguladım. artık hücrelerde #DEĞER yazmıyor ama veri de yazmıyor sonuç sıfır. Hata yapıyor olabilirmiyim.
 
Uygulamalarınızı yazarmısınız.

.
 
Herhalde dış veri alırken sonunda dosya bağlantılarını kaldırmadığınızdan dosya açılışta o uyarıyı veriyor.

bu makroyu çalıştırırmısınız. daha sonra dosyayı kayıt edin ve yeniden açın.

Kod:
Sub bağlantılarısil()
Dim qt As QueryTable
For i = 1 To ActiveWorkbook.Sheets.Count
For Each qt In Sheets(Sheets(i).Name).QueryTables
qt.Delete
Next qt
Next
MsgBox "işlem tamam"
End Sub

İlginize teşekkürler.

Ancak omv.csv dosyası hergün güncellenip web den indiğinden excel inde bu bağlantıyı her açılışta çalıştırması gerekiyor.

Uygulamalarınızı yazarmısınız.

.

Uygulamalar derken? excel 2003 kullanıyorum. csv dosyası web üzerinden iniyor. Tam olarak anlayamadım.
 
"Adımları uyguladım veri yazmıyor" dediniz.

Ugyuladığınız adımlar nelerdir. Onu anlayamadım. Ayıraç değiştirerek mi csv dosyasına veri aldınız.
 
İlginize teşekkürler.

Ancak omv.csv dosyası hergün güncellenip web den indiğinden excel inde bu bağlantıyı her açılışta çalıştırması gerekiyor.



Uygulamalar derken? excel 2003 kullanıyorum. csv dosyası web üzerinden iniyor. Tam olarak anlayamadım.

dış veriyi elle manuelmi yapıyorsunuz yoksa makro koduylamı yapıyorsunuz.?
eğer makro ile yapıyorsanız kodları buraya yazarmısınız.
 
Önce xls dosyasını yenilemeyi devre dışı bırakarak açtım. Sistem ayraçlarını kullan seçeneğini kaldırdım, nokta ve virgülü girdim, dosyayı kaydedip kapattım. Tekrar açtığımda yenilemeyi etkinleştirdim ve formüller değerleri sıfır olarak döndü. Yani AA7 AX12 ve BN12 hücreleri boşmuş gibi kabul ediyor..
 
Önce xls dosyasını yenilemeyi devre dışı bırakarak açtım. Sistem ayraçlarını kullan seçeneğini kaldırdım, nokta ve virgülü girdim, dosyayı kaydedip kapattım. Tekrar açtığımda yenilemeyi etkinleştirdim ve formüller değerleri sıfır olarak döndü. Yani AA7 AX12 ve BN12 hücreleri boşmuş gibi kabul ediyor..

Söylemek istediğim bu değildi.

Oluşturduğunuz csv. dosyasına veri alırken önce ayıraçları değiştirin, veriyi alın daha sonra ayıraçları eski haline çevirin.

Bu işlemden sonra hesap.xls ile csv. dosyası arasında bağlantı kurun.

.
 
bu dosyanın sayfa1 sayfasında veri al düğmesine tıkla açılan pencereden csv uzantılı dosyanızı seçin alınan verileri kontrol edin.

Kod:
Private Sub CommandButton1_Click()
ThisWorkbook.Sheets(ActiveSheet.Name).Range(Cells(1, 1), Cells(Rows.Count, Columns.Count)).ClearContents
Dim sayfa_adi As String
Dosya = Application.GetOpenFilename(filefilter:="Excel Spreadsayfa_adis (*.csv**), *.csv**", Title:="Import Data From...")
If Dosya = "False" Then
Exit Sub
End If
sayfa_adi = Dir(Dosya)
With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & Dosya, Destination:=Range("A1"))
.Name = sayfa_adi
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.Refresh BackgroundQuery:=False
End With
Range("a2").Select
Columns("A:A").TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
:=";", FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1)), TrailingMinusNumbers:=True
Columns("A:AP").EntireColumn.AutoFit
Dim qt As QueryTable
For Each qt In ActiveSheet.QueryTables
qt.Delete
Next qt
MsgBox "işlem tamam"
End Sub
 

Ekli dosyalar

Söylemek istediğim bu değildi.

Oluşturduğunuz csv. dosyasına veri alırken önce ayıraçları değiştirin, veriyi alın daha sonra ayıraçları eski haline çevirin.

Bu işlemden sonra hesap.xls ile csv. dosyası arasında bağlantı kurun.

.

Maalesef csv dosyasını webden download ediyorum. Ama dediklerini csv yi excele import etmeden önce ve ettikten sonra da denedim değer 0


bu dosyanın sayfa1 sayfasında veri al düğmesine tıkla açılan pencereden csv uzantılı dosyanızı seçin alınan verileri kontrol edin.

Kod:
Private Sub CommandButton1_Click()
ThisWorkbook.Sheets(ActiveSheet.Name).Range(Cells(1, 1), Cells(Rows.Count, Columns.Count)).ClearContents
Dim sayfa_adi As String
Dosya = Application.GetOpenFilename(filefilter:="Excel Spreadsayfa_adis (*.csv**), *.csv**", Title:="Import Data From...")
If Dosya = "False" Then
Exit Sub
End If
sayfa_adi = Dir(Dosya)
With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & Dosya, Destination:=Range("A1"))
.Name = sayfa_adi
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.Refresh BackgroundQuery:=False
End With
Range("a2").Select
Columns("A:A").TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
:=";", FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1)), TrailingMinusNumbers:=True
Columns("A:AP").EntireColumn.AutoFit
Dim qt As QueryTable
For Each qt In ActiveSheet.QueryTables
qt.Delete
Next qt
MsgBox "işlem tamam"
End Sub

Sonuç #DEĞER olarak dönüyor. Sayfada aşağıdaki gibi değerler var bundan olabilir belki.

17,8
7
Oca.00
Ara.01
Oca.00
Oca.00

Ayrıca tekrar tekrar teşekkürlerimi sunuyorum bu kadar uğraşıyorsunuz. Excel dışında başka bir platformda bu uygulamayı hazırlayabilecek olursa satın almaya hazırım.
 
Geri
Üst