• DİKKAT

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

Text Box Metin Yazdırma Hakkında

petsiye

Altın Üye
Katılım
28 Eylül 2009
Mesajlar
193
Excel Vers. ve Dili
Office 2019 TR 32 Bit
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
 
If say >= 25 Then Exit For yerine

if say >=25 then

userform2.controls("Textbox" &..... diye devam edebilirsiniz
 
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
 
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 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
 
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 ?
 
Geri
Üst