VBA ile etiket oluşturma

Katılım
11 Haziran 2010
Mesajlar
95
Excel Vers. ve Dili
2010 TÜRKÇE
Merhaba,
Excelde VBA ile Sayfa1 sarı alandaki yazılanları Sayfa2 de aşağıya doğru Sayfa1 B3 hücresinde yazılan kadar alt alta yazdırma istiyorum. Bunu yaparken de örneğin B3 te 4 yazıyorsa Sayfa 2 de yazdırırken aşağıdaki örnekteki gibi 1/4, 2/4, 3/4, 4/4 şeklinde yazdırmaya çalışıyorum ama beceremedim.

Yardım edebilir misiniz?

 

relaxim

Altın Üye
Katılım
30 Ağustos 2009
Mesajlar
526
Excel Vers. ve Dili
Ofis 2016 Tr 64 bit
Altın Üyelik Bitiş Tarihi
15.06.2027

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Merhaba.
Aşağıdaki kodu deneyiniz.
Kod:
Sub Test()
    Dim Say As Integer
    Dim Sira As Integer
    Dim Syf1 As Worksheet
    Dim Syf2 As Worksheet
    
    Set Syf1 = Worksheets("Sayfa1")
    Set Syf2 = Worksheets("Sayfa2")
    
    Syf2.Range("A:B").ClearContents
    Sira = Syf2.Cells(Rows.Count, "A").End(xlUp).Row + 1
    For Say = 1 To Syf1.Range("B3").Value
        Syf2.Range("A" & Sira & ":B" & Sira + 2).Value = Syf1.Range("A1:B3").Value
        Syf2.Range("B" & Sira + 2) = "'" & Say & "/" & Syf1.Range("B3")
        Sira = 3 + Sira
    Next
End Sub
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,359
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,
Bu soru sanki bana eksik gibi geldi. Sayfa1 deki veri tek kişiye ait olmayacağı hissine kapılarak kodları ona göre düzenledim.

Kod:
Sub Deneme()

Dim i   As Long, _
    j   As Long, _
    s   As Integer, _
    si  As Integer

Application.ScreenUpdating = False
i = 1
j = Sayfa2.Cells(Rows.Count, "A").End(3).Row + 1
If j = 2 Then j = 1

Do
    s = Sayfa1.Cells(i + 2, "B")
    For si = 1 To s
        Sayfa1.Range("A" & i & ":B" & i + 2).Copy Sayfa2.Range("A" & j)
        With Sayfa2.Range("B" & j + 2)
            .NumberFormat = "@"
            .Value = si & " / " & s
        End With
        j = j + 3
    Next si
    i = i + 3
Loop Until Sayfa1.Cells(i, "A") = ""

Application.ScreenUpdating = True
MsgBox "İşlem Tamamlanmıştır.....", vbInformation, "Excel.web.tr"

End Sub
 
Katılım
11 Haziran 2010
Mesajlar
95
Excel Vers. ve Dili
2010 TÜRKÇE
Merhaba.
Aşağıdaki kodu deneyiniz.
Kod:
Sub Test()
    Dim Say As Integer
    Dim Sira As Integer
    Dim Syf1 As Worksheet
    Dim Syf2 As Worksheet
   
    Set Syf1 = Worksheets("Sayfa1")
    Set Syf2 = Worksheets("Sayfa2")
   
    Syf2.Range("A:B").ClearContents
    Sira = Syf2.Cells(Rows.Count, "A").End(xlUp).Row + 1
    For Say = 1 To Syf1.Range("B3").Value
        Syf2.Range("A" & Sira & ":B" & Sira + 2).Value = Syf1.Range("A1:B3").Value
        Syf2.Range("B" & Sira + 2) = "'" & Say & "/" & Syf1.Range("B3")
        Sira = 3 + Sira
    Next
End Sub
Muzaffer Ali bey elinize emeğinize sağlık. Çok güzel çalıştı.
Çok teşekkür ederim.
 
Katılım
11 Haziran 2010
Mesajlar
95
Excel Vers. ve Dili
2010 TÜRKÇE
Merhaba,
Bu soru sanki bana eksik gibi geldi. Sayfa1 deki veri tek kişiye ait olmayacağı hissine kapılarak kodları ona göre düzenledim.

Kod:
Sub Deneme()

Dim i   As Long, _
    j   As Long, _
    s   As Integer, _
    si  As Integer

Application.ScreenUpdating = False
i = 1
j = Sayfa2.Cells(Rows.Count, "A").End(3).Row + 1
If j = 2 Then j = 1

Do
    s = Sayfa1.Cells(i + 2, "B")
    For si = 1 To s
        Sayfa1.Range("A" & i & ":B" & i + 2).Copy Sayfa2.Range("A" & j)
        With Sayfa2.Range("B" & j + 2)
            .NumberFormat = "@"
            .Value = si & " / " & s
        End With
        j = j + 3
    Next si
    i = i + 3
Loop Until Sayfa1.Cells(i, "A") = ""

Application.ScreenUpdating = True
MsgBox "İşlem Tamamlanmıştır.....", vbInformation, "Excel.web.tr"

End Sub
Necdet bey teşekkürler, çok güzel çalıştı. Fakat tek kişiye ait olma durumunu pek anlamadım ama bu haliyle işini gayet gördü.
Elinize emeğinize sağlık.
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,359
Excel Vers. ve Dili
Ofis 365 Türkçe
Şöyle söyleyim,
Sayfa1 de yazdığınızdan 1 değil bir kaç veri olabilir, ben de kodları ona göre kurguladım.
 
Üst