• DİKKAT

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

VBA kodda hata alıyorum

catalinastrap

Özgür
Destek Ekibi
Katılım
19 Ağustos 2006
Mesajlar
644
Excel Vers. ve Dili
Microsoft® Excel® Microsoft 365 için MSO /64 bit /Türkçe
Merhabalar,
aşağıdaki kod bloğun da hata alıyorum ve bir türlü çözemedim yardımcı olabilirmsiniz neyi alıyorum acaba."hata aldığım satırı kırmızı ile işaretledim"


Private Sub CommandButton1_Click()
Dim d1 As Date, d3 As Date
Dim a2 As Double
Dim son, s, temizle, sira As Long
Dim dDate As Date

Dim LValue As Boolean


TextBox6 = Format(Format(TextBox4.Value, "00000") + TextBox5.Value * 1, "dd.mm.yyyy")

TextBox4.Value = Format(TextBox4.Value, "dd.mm.yyyy")

LValue = IsDate(TextBox4)


If LValue = False Then

dDate = DateSerial(Year(Date), Month(Date), Day(Date))

TextBox4.Value = dDate

End If

d1 = TextBox4.Value

a2 = TextBox5.Value

If Len(a2) = 0 Then a2 = 0

d3 = DateAdd("d", a2, d1)

TextBox6 = d3



If TextBox1 = "" Then
MsgBox "Önce isim soyisim yazmalısınız", vbInformation
Exit Sub: End If
son = Cells(65536, "a").End(xlUp).Row + 1
s = 2


For tex = 1 To 17
Cells(son, s) = Controls("TextBox" & tex)

s = s + 1
Next
For sira = 2 To Cells(65536, "b").End(xlUp).Row
Cells(sira, "a") = sira - 1
Next
For temizle = 1 To 17
Controls("TextBox" & temizle) = Empty
Next

SIRALA = Cells(65536, "A").End(xlUp).Row
Sheets("veri").Range("A2:R" & SIRALA).Sort KEY1:=[B2], ORDER1:=xlAscending
TextBox8 = ".": TextBox8 = ""


ActiveWorkbook.Save

End Sub
 
Merhaba ,kaç adet TextBox var ve bu TextBox'ların isimleri neler diye kontrol etmekte fayda var.
 
Merhaba ,kaç adet TextBox var ve bu TextBox'ların isimleri neler diye kontrol etmekte fayda var.


Merhaba,
tüm kontrolleri yaptım ancak işin içinden çıkamadım sorun yok gibi duruyor ancak

Cells(son, s) = Controls("TextBox" & tex)

bu satırda hata alıyorum
 
Merhaba , sorun tam olarak #2 nolu mesajda belirttiğim konudan kaynaklanıyor. 1 den 17 ye kadar döngünüz var ve tex değişkenini textboxlara atıyorsunuz , ama 15 nolu textbox yok burada hata veriyor doğal olarak , bu tip durumlarda tavsiyem aşağıdaki verdiğim şekilde denemeniz .

Kod:
For Each Text In Me.Controls
    If TypeName(Text) = "TextBox" Then
        Cells(son, s) = Text.Value
        s = s + 1
    End If
Next
 
Merhaba , sorun tam olarak #2 nolu mesajda belirttiğim konudan kaynaklanıyor. 1 den 17 ye kadar döngünüz var ve tex değişkenini textboxlara atıyorsunuz , ama 15 nolu textbox yok burada hata veriyor doğal olarak , bu tip durumlarda tavsiyem aşağıdaki verdiğim şekilde denemeniz .

Kod:
For Each Text In Me.Controls
    If TypeName(Text) = "TextBox" Then
        Cells(son, s) = Text.Value
        s = s + 1
    End If
Next


Merhabalar,
ben derleyemedim galiba hata alıyorum yardımcı olabilirmisiniz mevcut dosya üzerinden

çok teşekkür ederim
 
Merhaba ,

Kodlarınızdaki şu bölümü
Kod:
For tex = 1 To 17
Cells(son, s) = Controls("TextBox" & tex)
s = s + 1
Next


bu şekilde
Kod:
For Each Text In Me.Controls
    If TypeName(Text) = "TextBox" Then
        Cells(son, s) = Text.Value
        s = s + 1
    End If
Next


Bu bölümü de
Kod:
For temizle = 1 To 17
Controls("TextBox" & temizle) = Empty
Next

bu şekilde değiştiriniz.
Kod:
For Each Text In Me.Controls
    If TypeName(Text) = "TextBox" Then
        Text.Value = Empty
    End If
Next
 
Merhaba ,

Kodlarınızdaki şu bölümü
Kod:
For tex = 1 To 17
Cells(son, s) = Controls("TextBox" & tex)
s = s + 1
Next


bu şekilde
Kod:
For Each Text In Me.Controls
    If TypeName(Text) = "TextBox" Then
        Cells(son, s) = Text.Value
        s = s + 1
    End If
Next


Bu bölümü de
Kod:
For temizle = 1 To 17
Controls("TextBox" & temizle) = Empty
Next

bu şekilde değiştiriniz.
Kod:
For Each Text In Me.Controls
    If TypeName(Text) = "TextBox" Then
        Text.Value = Empty
    End If
Next




Merhaba,
şimdide aşağıda hata aldım sarı ile işaretli satırda

'For tex = 1 To 17

'Cells(son, s) = Controls("TextBox" & tex)
's = s + 1
For Each Text In Me.Controls
If TypeName(Text) = "TextBox" Then
Cells(son, s) = Text.Value
s = s + 1
End If
Next




For sira = 2 To Cells(65536, "b").End(xlUp).Row
Cells(sira, "a") = sira - 1
Next
'For temizle = 1 To 17
'Controls("TextBox" & temizle) = Empty
'Next


For Each Text In Me.Controls
If TypeName(Text) = "TextBox" Then
Text.Value = Empty
End If
Next

SIRALA = Cells(65536, "A").End(xlUp).Row
Sheets("veri").Range("A2:S" & SIRALA).Sort KEY1:=[B2], ORDER1:=xlAscending
TextBox7 = ".": TextBox7 = ""



ActiveWorkbook.Save
End Sub
 
Merhaba , o satırın hatası benim verdiğim kodlar ile alakalı değil , muhtemelen zaten çalışmıyordu o satırdaki kod.

Nedeni : Farklı bir sayfadaki verileri sıralamaya çalışılırken verilen kriter olduğunuz sayfanın B2 hücresi

Çözümü : Muhtemelen bu şekilde Sheets("veri").Range("B2")

Deneyiniz..
 
Geri
Üst