[Yardım]  For Next Sorunsalı.

VBA Makrolar ile ilgili sormak istedikleriniz, yapmak istedikleriniz hakkında yardım alabileceğiniz bölümdür.

For Next Sorunsalı.

İleti#1)  kediciyizbiz » 15 Nis 2019 21:40

Arkadaşlar aşağıdaki gibi bir bloğum ancak burada; "i" yi 4 yaptığım zaman "a" değerinide 3 yapmam gerekiyor ama bir türlü yapamıyorum. ilk sırada herşey çok güzel, "i" 2 değerini alıyor, "a" 2 değerini alıyor mis gibi gidiyor ancak bir sonraki tur da olaylar karışıyor.

Kod: Tümünü seç
Sub degerler()
For i = 2 To 140 Step 2
For a = 2 To 70

If v.Cells(1, a) <> "" Then
    If v.Cells(2, a) = l.Cells(2, 3) Then
        v.Cells(15, a) = "R" & "ST" & "-2019" & "/" & i - 1
        v.Cells(16, a) = "KK" & "ST" & "-2019" & "/" & i - 1
End If
    Else:
    GoTo son
    End If
    Next a
Next i
son:
End Sub
Kullanıcı avatarı
kediciyizbiz
Yeni Başlamış
 
Adı Soyadı:ihsan kılıçkaya
Kayıt: 14 Eyl 2009 22:03
İleti: 16
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: sivas

Cevap: For Next Sorunsalı.

İleti#2)  ahmetilhan282 » 15 Nis 2019 22:22

Aşağıdaki kodları deneyin:
Kod: Tümünü seç
Sub degerler()
    Dim a&, i&
    a = 1
    For i = 2 To 140 Step 2
        a = a + 1
       
        If v.Cells(1, a) <> "" Then
            If v.Cells(2, a) = l.Cells(2, 3) Then
                v.Cells(15, a) = "R" & "ST" & "-2019" & "/" & i - 1
                v.Cells(16, a) = "KK" & "ST" & "-2019" & "/" & i - 1
            End If
        Else
            Exit For
        End If
    Next i
    a = Empty: i = Empty
End Sub
Kullanıcı avatarı
ahmetilhan282
Site Dostu
 
Adı Soyadı:Ahmet İLHAN
Kayıt: 15 Oca 2014 00:04
Konum: Adana
Meslek: Güvenlik
Yaş: 29
İleti: 798
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Mersin

Cevap: For Next Sorunsalı.

İleti#3)  kediciyizbiz » 16 Nis 2019 20:47

Süper, harika ellerinize emeğinize ve sinapslarınıza sağlık. Birde açıklayabilirmisiniz?
Kullanıcı avatarı
kediciyizbiz
Yeni Başlamış
 
Adı Soyadı:ihsan kılıçkaya
Kayıt: 14 Eyl 2009 22:03
İleti: 16
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: sivas

Cevap: For Next Sorunsalı.

İleti#4)  ahmetilhan282 » 16 Nis 2019 21:00

Sizin yazdığınız kodda iç içe iki tane for döngüsü vardı. i=2 değerini aldıktan sonra a sırasıyla 1den 70e kadar bütün değerleri alıyordu. sonra i=4 olunca a tekrar 1den 70e kadar bütün değerleri alıyordu... i = 70 olana kadar a her seferinde 1den 70e kadar değer alıp içerdeki koşulu kontrol ediyordu.
ben içerdeki döngüyü (a döngüsünü) kaldırıp a'yı her seferinde bir arttırdım. (a=a+1) böylelikle ikinci döngüden kurtularak kodları da hızlandırmış olduk.
Kullanıcı avatarı
ahmetilhan282
Site Dostu
 
Adı Soyadı:Ahmet İLHAN
Kayıt: 15 Oca 2014 00:04
Konum: Adana
Meslek: Güvenlik
Yaş: 29
İleti: 798
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Mersin

REKLAM
Excel Logo XML Oluşturucu
Logo Object Designer ile Uyarlama

Cevap: For Next Sorunsalı.

İleti#5)  kediciyizbiz » 16 Nis 2019 22:06

Harika hocam biraz geçte olsa anladım, henüz 1 aylık ufak bir vba öğrencisiyim, ANladım teşekkürler.

peki bir sorum daha olacak, sorgu bir sonraki sütunda ki hücreyi yoklayıp eğer boş ise önce ki değerleri yazacak, yok sonraki hücre dolu ise o sütunun verilerini çekecek şekilde bir sorgu nasıl yaparız?

Teşekkürler
Kullanıcı avatarı
kediciyizbiz
Yeni Başlamış
 
Adı Soyadı:ihsan kılıçkaya
Kayıt: 14 Eyl 2009 22:03
İleti: 16
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: sivas

Cevap: For Next Sorunsalı.

İleti#6)  kediciyizbiz » 16 Nis 2019 22:11

Bu uygun mu sizce?
Kod: Tümünü seç
kom = 2
For kom = 2 To 70
    If v.Cells(1, kom + 1) <> "" Then
kom = kom + 1
Else:
r.Cells(1, 12) = v.Cells(16, kom)
r.Cells(1, 17) = v.Cells(17, kom)



Exit For

    End If
Next kom
Kullanıcı avatarı
kediciyizbiz
Yeni Başlamış
 
Adı Soyadı:ihsan kılıçkaya
Kayıt: 14 Eyl 2009 22:03
İleti: 16
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: sivas

REKLAM
ETA - Excel Konsolide Raporlama
ETA Excel Personel Entegre Raporu

Şöyle Bir Şey Yaptım ama. İş Görüyor Gibi.

İleti#7)  kediciyizbiz » 16 Nis 2019 22:46

Kod: Tümünü seç
For kom = 2 To 70

    If v.Cells(1, kom + 1) = "" Then
    r.Cells(1, 12) = v.Cells(16, kom)
    r.Cells(1, 17) = v.Cells(3, kom).Value
     Exit For
     Else:
    GoTo ileri
     End If
ileri:
Next kom
kom = Empty
Kullanıcı avatarı
kediciyizbiz
Yeni Başlamış
 
Adı Soyadı:ihsan kılıçkaya
Kayıt: 14 Eyl 2009 22:03
İleti: 16
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: sivas


Forum Genel Makro Soruları

Online Kullanıcılar

Bu forumu görüntüleyenler: Google [Bot], Sogou ve 1 misafir

Bumerang - Yazarkafe