• DİKKAT

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

Makroda hata

Katılım
6 Mayıs 2014
Mesajlar
264
Excel Vers. ve Dili
office 365
Merhabalar. Ekteki dosyanın "2" numaralı sayfasındaki "deneme_2" makrosu çalışmıyor. Tabloyu aşağı doğru uzattıktan sonra hata vermeye başladı. Bunun sebebini öğrenmek istemiştim
 

Ekli dosyalar

Merhaba
Bütün kodlarınza
Sub Deneme_2()
Dim Say As Long
Dim Bak As Long
Dim Alan As String
On Error Resume Next
Say = Cells(Rows.Count, "A").End(xlUp).Row
For i = 3 To Say
If Cells(i, "A") <> "" And Cells(i, "E") = "" Then
If Alan = "" Then
Range("E" & i).Select
End If
Alan = Range("E" & i).Address
Range(Selection.Address & "," & Alan).Select
End If
Next
End Sub
Şeklinde ekleyip denermisiniz
 
Merhaba
Bütün kodlarınza
Sub Deneme_2()
Dim Say As Long
Dim Bak As Long
Dim Alan As String
On Error Resume Next
Say = Cells(Rows.Count, "A").End(xlUp).Row
For i = 3 To Say
If Cells(i, "A") <> "" And Cells(i, "E") = "" Then
If Alan = "" Then
Range("E" & i).Select
End If
Alan = Range("E" & i).Address
Range(Selection.Address & "," & Alan).Select
End If
Next
End Sub
Şeklinde ekleyip denermisiniz
Maalesef olmadı. Bu yöntem hatayı engelledi ancak sonuç hala yanlış. "deneme_1" makrosu da aynı şekilde tabloyu uzattığımda sonucu yanlış veriyor
 
Hatanın sebebi sanıyorum 47. satırdaki seçili hücre adreslerinin toplam uzunluğunun 255 karakteri geçmesinden kaynaklanıyor. Döngü kullanmak yerine aşağıdaki kodu kullanmanız hem hatayı önler hem de daha hızlı ve pratik olacaktır:

PHP:
Sub Deneme_2()
    Dim Say As Long
    Say = Cells(Rows.Count, "A").End(xlUp).Row
    Range("E1:E" & Say).SpecialCells(xlCellTypeBlanks).Select
End Sub

Ekleme: Sizin kodda 47. satırdaki seçilecek kısım şöyle oluşuyor:

$E$3,$E$3,$E$4,$E$5,$E$7,$E$8,$E$10,$E$11,$E$12,$E$13,$E$14,$E$15,$E$16,$E$17,$E$18,$E$19,$E$20,$E$21,$E$22,$E$23,$E$24,$E$25,$E$26,$E$27,$E$28,$E$29,$E$30,$E$31,$E$32,$E$33,$E$34,$E$35,$E$36,$E$37,$E$38,$E$39,$E$40,$E$41,$E$42,$E$43,$E$44,$E$45,$E$46,$E$47
 
Maalesef bu da sonucu yanlış çıkarıyor. çünkü kod A hücresinde veri varken E sütununda veri olmayan hücreleri seçemiyor. Yine de teşekkür ederim
 
Bu işlemle yapmak istediğiniz asıl iş nedir? Yani hücreler seçildikten sonra ne yapılacak?
 
Deneme 2 makrosu için: "2" numaralı sayfanın E2 hücresindeki formül ya da değeri E sütunundaki şarta uyan boş hücrelere kopyalamayı planlamıştım. ( Gerçi eklediğim dosyadaki dinamik tabloda E2 hücresine yazacağım formül alt satırlara otomatik gelecektir. Ama bazen dinamik tablo kullanmıyorum) Ayrıca sorduğum seçme işleminin nasıl yapıldığını öğrenmeyi düşünmüştüm.

Deneme 1 makrosu için: Bu makro için de A sütununda veri yok iken E ya da F sütunlarında veri olan hücrelerin verilerini silmeyi planlamıştım
 
A sütunu dolu olup E sütunu boş olan hücrelere E2 hücresinin kopyalanması için makro:

PHP:
Sub Deneme_2()
Dim Say As Long
Say = Cells(Rows.Count, "A").End(xlUp).Row
For Each hucre In Range("E2:E" & Say)
    If hucre.Offset(0, -4) <> "" And hucre = "" Then
        [E2].Copy hucre
    End If
Next
End Sub

A sütunu boş iken E ya da F sütunu dolu olan hücreleri boşaltmak için makro:

PHP:
Sub DENEME_1_ÇİFT_SÜTUN()
Dim Say As Long
Say = Cells(Rows.Count, "A").End(xlUp).Row
For Each hucre In Range("E2:F" & Say)
    If Cells(hucre.Row, "A") = "" And hucre <> "" Then
        hucre.ClearContents
    End If
Next
End Sub
 
Allah razı olsun..
 
Geri
Üst