Text Box Metin Yazdırma Hakkında

petsiye

Altın Üye
Katılım
28 Eylül 2009
Mesajlar
191
Excel Vers. ve Dili
Office 2019 TR 32 Bit
Altın Üyelik Bitiş Tarihi
10-05-2029
Merhaba,

Aşağıdaki kod yardımıyla FILTRE isimli sayfada, filtreleme sonucu ilgili sütunlardaki verileri, USERFORM1 içerisindeki Text Boxlara yazdırıyorum herhangi bir sorun yok. Fakat Userform içerisine alt alta maksimum 25 adet Text Box sığdırabildiğim için, filtreleme sonucu 26. Satırdaki filtrelenmiş verileri de, yeni oluşturacağım USERFORM2 içerisindeki TExt boxlara, Satır kaydırmaması şartı ile yazdırmak istiyorum. Aşağıdaki formülde birçok varyasyon denememe rağmen başaramadım.
Konu hakkında yardımcı olabilecek kişilere şimdiden Teşekkür Ederim

Dim SF As Worksheet
Set SF = Sheets("FILTRE")
Dim say As Integer
say = 0
Dim a As Long, lastRow As Long
lastRow = SF.Cells(SF.Rows.Count, "C").End(xlUp).Row
For a = 3 To lastRow
If SF.Rows(a).EntireRow.Hidden = False Then
say = say + 1
If say <= 25 Then
Me.Controls("TextBox" & say).Text = SF.Cells(a, "C").Value
Me.Controls("TextBox" & (say + 25)).Text = SF.Cells(a, "D").Value
Me.Controls("TextBox" & (say + 50)).Text = SF.Cells(a, "JVL").Value
Me.Controls("TextBox" & (say + 75)).Text = SF.Cells(a, "HTB").Value
Me.Controls("TextBox" & (say + 100)).Text = SF.Cells(a, "V").Value
Me.Controls("TextBox" & (say + 125)).Text = SF.Cells(a, "W").Value
Me.Controls("TextBox" & (say + 150)).Text = SF.Cells(a, "X").Value
End If
End If
If say >= 25 Then Exit For
Next a
 

Trilenium

Destek Ekibi
Destek Ekibi
Katılım
16 Eylül 2008
Mesajlar
1,289
Excel Vers. ve Dili
Microsoft Office 2019 English
If say >= 25 Then Exit For yerine

if say >=25 then

userform2.controls("Textbox" &..... diye devam edebilirsiniz
 

petsiye

Altın Üye
Katılım
28 Eylül 2009
Mesajlar
191
Excel Vers. ve Dili
Office 2019 TR 32 Bit
Altın Üyelik Bitiş Tarihi
10-05-2029
Sayın @Trilenium Aşağıdaki şekilde denedim ama olmadı

Dim SF As Worksheet
Set SF = Sheets("FILTRE")
Dim say As Integer
say = 0
Dim a As Long, lastRow As Long
lastRow = SF.Cells(SF.Rows.Count, "C").End(xlUp).Row
For a = 3 To lastRow
If SF.Rows(a).EntireRow.Hidden = False Then
say = say + 1
If say <= 25 Then
Me.Controls("TextBox" & say).Text = SF.Cells(a, "C").Value
Me.Controls("TextBox" & (say + 25)).Text = SF.Cells(a, "D").Value
Me.Controls("TextBox" & (say + 50)).Text = SF.Cells(a, "JVL").Value
Me.Controls("TextBox" & (say + 75)).Text = SF.Cells(a, "HTB").Value
Me.Controls("TextBox" & (say + 100)).Text = SF.Cells(a, "V").Value
Me.Controls("TextBox" & (say + 125)).Text = SF.Cells(a, "W").Value
Me.Controls("TextBox" & (say + 150)).Text = SF.Cells(a, "X").Value
End If
End If
If say >= 25 Then UserForm299.Controls("TextBox" & say).Text = SF.Cells(a, "C").Value
Controls("TextBox" & (say + 25)).Text = SF.Cells(a, "D").Value
Controls("TextBox" & (say + 50)).Text = SF.Cells(a, "JVL").Value
Controls("TextBox" & (say + 75)).Text = SF.Cells(a, "HTB").Value
Controls("TextBox" & (say + 100)).Text = SF.Cells(a, "V").Value
Controls("TextBox" & (say + 125)).Text = SF.Cells(a, "W").Value
Controls("TextBox" & (say + 150)).Text = SF.Cells(a, "X").Value


Next a
 

Trilenium

Destek Ekibi
Destek Ekibi
Katılım
16 Eylül 2008
Mesajlar
1,289
Excel Vers. ve Dili
Microsoft Office 2019 English
Aşağıdaki kodu dener misiniz.


Dim SF As Worksheet
Set SF = Sheets("FILTRE")
Dim say As Integer
say = 0
Dim a As Long, lastRow As Long
lastRow = SF.Cells(SF.Rows.Count, "C").End(xlUp).Row
For a = 3 To lastRow
If SF.Rows(a).EntireRow.Hidden = False Then
say = say + 1
If say <= 25 Then
Me.Controls("TextBox" & say).Text = SF.Cells(a, "C").Value
Me.Controls("TextBox" & (say + 25)).Text = SF.Cells(a, "D").Value
Me.Controls("TextBox" & (say + 50)).Text = SF.Cells(a, "JVL").Value
Me.Controls("TextBox" & (say + 75)).Text = SF.Cells(a, "HTB").Value
Me.Controls("TextBox" & (say + 100)).Text = SF.Cells(a, "V").Value
Me.Controls("TextBox" & (say + 125)).Text = SF.Cells(a, "W").Value
Me.Controls("TextBox" & (say + 150)).Text = SF.Cells(a, "X").Value
End If
End If
If say = 25 Then Exit For
Next a

' Eğer 25'ten fazla satır varsa, kalan satırları UserForm2'de doldurun.
If say >= 25 Then
UserForm2.Show
UserForm2.Doldur (say + 1) ' 26. satırdan itibaren UserForm2'de doldurmaya başlar.
End If





Public Sub Doldur(baslangicSatir As Integer)
Dim SF As Worksheet
Set SF = Sheets("FILTRE")
Dim say As Integer
say = 0
Dim a As Long, lastRow As Long
lastRow = SF.Cells(SF.Rows.Count, "C").End(xlUp).Row
For a = baslangicSatir To lastRow
If SF.Rows(a).EntireRow.Hidden = False Then
say = say + 1
If say <= 25 Then
Me.Controls("TextBox" & say).Text = SF.Cells(a, "C").Value
Me.Controls("TextBox" & (say + 25)).Text = SF.Cells(a, "D").Value
Me.Controls("TextBox" & (say + 50)).Text = SF.Cells(a, "JVL").Value
Me.Controls("TextBox" & (say + 75)).Text = SF.Cells(a, "HTB").Value
Me.Controls("TextBox" & (say + 100)).Text = SF.Cells(a, "V").Value
Me.Controls("TextBox" & (say + 125)).Text = SF.Cells(a, "W").Value
Me.Controls("TextBox" & (say + 150)).Text = SF.Cells(a, "X").Value
End If
End If
If say >= 25 Then Exit For
Next a
End Sub
 

petsiye

Altın Üye
Katılım
28 Eylül 2009
Mesajlar
191
Excel Vers. ve Dili
Office 2019 TR 32 Bit
Altın Üyelik Bitiş Tarihi
10-05-2029
Aşağıdaki kodu dener misiniz.


Dim SF As Worksheet
Set SF = Sheets("FILTRE")
Dim say As Integer
say = 0
Dim a As Long, lastRow As Long
lastRow = SF.Cells(SF.Rows.Count, "C").End(xlUp).Row
For a = 3 To lastRow
If SF.Rows(a).EntireRow.Hidden = False Then
say = say + 1
If say <= 25 Then
Me.Controls("TextBox" & say).Text = SF.Cells(a, "C").Value
Me.Controls("TextBox" & (say + 25)).Text = SF.Cells(a, "D").Value
Me.Controls("TextBox" & (say + 50)).Text = SF.Cells(a, "JVL").Value
Me.Controls("TextBox" & (say + 75)).Text = SF.Cells(a, "HTB").Value
Me.Controls("TextBox" & (say + 100)).Text = SF.Cells(a, "V").Value
Me.Controls("TextBox" & (say + 125)).Text = SF.Cells(a, "W").Value
Me.Controls("TextBox" & (say + 150)).Text = SF.Cells(a, "X").Value
End If
End If
If say = 25 Then Exit For
Next a

' Eğer 25'ten fazla satır varsa, kalan satırları UserForm2'de doldurun.
If say >= 25 Then
UserForm2.Show
UserForm2.Doldur (say + 1) ' 26. satırdan itibaren UserForm2'de doldurmaya başlar.
End If





Public Sub Doldur(baslangicSatir As Integer)
Dim SF As Worksheet
Set SF = Sheets("FILTRE")
Dim say As Integer
say = 0
Dim a As Long, lastRow As Long
lastRow = SF.Cells(SF.Rows.Count, "C").End(xlUp).Row
For a = baslangicSatir To lastRow
If SF.Rows(a).EntireRow.Hidden = False Then
say = say + 1
If say <= 25 Then
Me.Controls("TextBox" & say).Text = SF.Cells(a, "C").Value
Me.Controls("TextBox" & (say + 25)).Text = SF.Cells(a, "D").Value
Me.Controls("TextBox" & (say + 50)).Text = SF.Cells(a, "JVL").Value
Me.Controls("TextBox" & (say + 75)).Text = SF.Cells(a, "HTB").Value
Me.Controls("TextBox" & (say + 100)).Text = SF.Cells(a, "V").Value
Me.Controls("TextBox" & (say + 125)).Text = SF.Cells(a, "W").Value
Me.Controls("TextBox" & (say + 150)).Text = SF.Cells(a, "X").Value
End If
End If
If say >= 25 Then Exit For
Next a
End Sub

Aşağıdaki Hatayı Aldım 254710
 
Katılım
11 Temmuz 2024
Mesajlar
208
Excel Vers. ve Dili
Excel 2021 Türkçe
Merhaba, şu şekilde dener misiniz;

Kod:
Dim SF As Worksheet
Set SF = Sheets("FILTRE")
Dim say As Integer
say = 0
Dim a As Long, lastRow As Long
Dim UF2 As New USERFORM2

lastRow = SF.Cells(SF.Rows.Count, "C").End(xlUp).Row
For a = 3 To lastRow
    If SF.Rows(a).EntireRow.Hidden = False Then
        say = say + 1
        If say <= 25 Then
            Me.Controls("TextBox" & say).Text = SF.Cells(a, "C").Value
            Me.Controls("TextBox" & (say + 25)).Text = SF.Cells(a, "D").Value
            Me.Controls("TextBox" & (say + 50)).Text = SF.Cells(a, "JVL").Value
            Me.Controls("TextBox" & (say + 75)).Text = SF.Cells(a, "HTB").Value
            Me.Controls("TextBox" & (say + 100)).Text = SF.Cells(a, "V").Value
            Me.Controls("TextBox" & (say + 125)).Text = SF.Cells(a, "W").Value
            Me.Controls("TextBox" & (say + 150)).Text = SF.Cells(a, "X").Value
        ElseIf say > 25 And say <= 50 Then
            Dim idx As Integer
            idx = say - 25
            UF2.Controls("TextBox" & idx).Text = SF.Cells(a, "C").Value
            UF2.Controls("TextBox" & (idx + 25)).Text = SF.Cells(a, "D").Value
            UF2.Controls("TextBox" & (idx + 50)).Text = SF.Cells(a, "JVL").Value
            UF2.Controls("TextBox" & (idx + 75)).Text = SF.Cells(a, "HTB").Value
            UF2.Controls("TextBox" & (idx + 100)).Text = SF.Cells(a, "V").Value
            UF2.Controls("TextBox" & (idx + 125)).Text = SF.Cells(a, "W").Value
            UF2.Controls("TextBox" & (idx + 150)).Text = SF.Cells(a, "X").Value
        End If
    End If
Next a

If say > 25 Then
    UF2.Show
End If
 
Son düzenleme:

petsiye

Altın Üye
Katılım
28 Eylül 2009
Mesajlar
191
Excel Vers. ve Dili
Office 2019 TR 32 Bit
Altın Üyelik Bitiş Tarihi
10-05-2029
Merhaba, şu şekilde dener misiniz;

Kod:
Dim SF As Worksheet
Set SF = Sheets("FILTRE")
Dim say As Integer
say = 0
Dim a As Long, lastRow As Long
Dim UF2 As New USERFORM2

lastRow = SF.Cells(SF.Rows.Count, "C").End(xlUp).Row
For a = 3 To lastRow
    If SF.Rows(a).EntireRow.Hidden = False Then
        say = say + 1
        If say <= 25 Then
            Me.Controls("TextBox" & say).Text = SF.Cells(a, "C").Value
            Me.Controls("TextBox" & (say + 25)).Text = SF.Cells(a, "D").Value
            Me.Controls("TextBox" & (say + 50)).Text = SF.Cells(a, "JVL").Value
            Me.Controls("TextBox" & (say + 75)).Text = SF.Cells(a, "HTB").Value
            Me.Controls("TextBox" & (say + 100)).Text = SF.Cells(a, "V").Value
            Me.Controls("TextBox" & (say + 125)).Text = SF.Cells(a, "W").Value
            Me.Controls("TextBox" & (say + 150)).Text = SF.Cells(a, "X").Value
        ElseIf say > 25 And say <= 50 Then
            Dim idx As Integer
            idx = say - 25
            UF2.Controls("TextBox" & idx).Text = SF.Cells(a, "C").Value
            UF2.Controls("TextBox" & (idx + 25)).Text = SF.Cells(a, "D").Value
            UF2.Controls("TextBox" & (idx + 50)).Text = SF.Cells(a, "JVL").Value
            UF2.Controls("TextBox" & (idx + 75)).Text = SF.Cells(a, "HTB").Value
            UF2.Controls("TextBox" & (idx + 100)).Text = SF.Cells(a, "V").Value
            UF2.Controls("TextBox" & (idx + 125)).Text = SF.Cells(a, "W").Value
            UF2.Controls("TextBox" & (idx + 150)).Text = SF.Cells(a, "X").Value
        End If
    End If
Next a

If say > 25 Then
    UF2.Show
End If
Hata yok ama Userform2 De de , Userform1 deki verileri aynısı çıkıyor. Userform2 içerisine herhangi bir kod gerekiyormu acaba bunu için ?
 
Katılım
11 Temmuz 2024
Mesajlar
208
Excel Vers. ve Dili
Excel 2021 Türkçe
Evet, UserForm2 içindeki kodu kontrol etmeniz gerekiyor.
 
Üst