textbox mükerer giriş kontrol kodumdaki eksik

Katılım
25 Aralık 2005
Mesajlar
104
sevgili hocalarım ;

aşağıdaki kod ile textboxtan veri sayfasına veri girişini ve girilen verinin mukerrer giriş olup olmadığını yeni girişse kontrol ediyor fakat sorum şu ;

bu kodda



commandbotton kodu;


Private Sub KAYDET_Click()
If TextBox1.Text <> "" Then

For i = 2 To Sheets("veri").Range("A65536").End(xlUp).Row
If UCase(Sheets("veri").Range("a" & i).Value) = UCase(TextBox1.Text) Then
MsgBox "MÜKERRER KAYIT BULUNDU GİRDİGİNİZ HATAYI TEKRAR KONTROL EDİNİZ", vbCritical, "HATALI GİRİS YAPTINIZ"
Exit Sub
End If
Next i

Call YENİ_HATA_GİR

End If


End Sub



button koduna kayıt için module atadığım kod;

Sub YENİ_HATA_GİR()
Sheets("veri").Select
Dim bak As Range
Range("a22").Select
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.Value = USERFORM1.TextBox1.Value

End Sub


yani her yeni giriş a22 den itibaren giriliyor ama sorum şu

mukerrer kayıt için ben a1 den itibaren kotnrol etmesini nasıl sağlayacağım şuan sadece a22 den itibaren kontrol yapıyor;
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
YENİ_HATA_GİR makrosundaki;

Range("A22").Select ifadesini, Range("A1").Select olarak değiştiriniz.
 
Katılım
25 Aralık 2005
Mesajlar
104
Hocam yazıkki işe yaramadı şöyle söyliyim

a1-a22 arası zaten dolu amacım yeni giriş yapılırsa a22 den devam etmesi buraya kada çalışıyor ama sizin düzeltmeyi module de yaptım ve range a1 yaptım ama daha once a1 de var olan bir kaydı yineledim giriş yaptı tekrar girdiğimde(yani 3 ncü aynı kayıt olacaktı) mukerrer dedi pek hocam aşağıdaki kodda revizyon gerekirmi ?

For i = 2 To Sheets("veri").Range("A65536").End(xlUp).Row
If UCase(Sheets("veri").Range("a" & i).Value) = UCase(TextBox1.Text) Then


birde diğer sorularımada cevap verebilirmisiniz sizin verdiğiniz kod üzerinde çok kfa yordum ama kurduğum mantık işe yaramdı şu comboobzlı seçilen hücreye kayıt olayı

şimdiden yardımınız için çok teşerkkür ederim

saygılarımla
 
Katılım
25 Ağustos 2008
Mesajlar
10
Excel Vers. ve Dili
2003 tr
Hocam yazıkki işe yaramadı şöyle söyliyim

a1-a22 arası zaten dolu amacım yeni giriş yapılırsa a22 den devam etmesi buraya kada çalışıyor ama sizin düzeltmeyi module de yaptım ve range a1 yaptım ama daha once a1 de var olan bir kaydı yineledim giriş yaptı tekrar girdiğimde(yani 3 ncü aynı kayıt olacaktı) mukerrer dedi pek hocam aşağıdaki kodda revizyon gerekirmi ?

For i = 2 To Sheets("veri").Range("A65536").End(xlUp).Row
If UCase(Sheets("veri").Range("a" & i).Value) = UCase(TextBox1.Text) Then


birde diğer sorularımada cevap verebilirmisiniz sizin verdiğiniz kod üzerinde çok kfa yordum ama kurduğum mantık işe yaramdı şu comboobzlı seçilen hücreye kayıt olayı

şimdiden yardımınız için çok teşerkkür ederim

saygılarımla
Bence sorun hataya ilişkin makro modülündeki kodda değil.O kod zaten sadece yeni yazılacak verinin nereye yazılması gerektiiğini gösteriyor. Asıl sorun yukarıda yer alan kodda, burada benzer kayıtların karşılaştırıldığı yerde döngü değişkeni olan i değerini 2 yerine 1 den başlatırsanız

For i = 1 To Sheets("veri").Range("A65536").End(xlUp).Row

sorununuz hallolur. İyi çalışmalar.
dosya ektedir
 
Katılım
25 Aralık 2005
Mesajlar
104
Teşekkür ederim

Teşekkür ederim bu sorunum çözüldü en sonunda hepinize teşekkür ederim;

peki en önemli diğer sorum hakkında yorum yapabilirmisiniz;




combo box 1-3-4-5 seçimlerinden denk gelen hücreye combobox 2 deki veriyi aşağıdaki kod ile yazdırmadım ;

seçimde sorun yok ama yazırmak için

ComboBox2.Value = Range( " & .Name & " sayfasındaki " & .Cells(satir, sutun).Address)

bu satırın nasıl revize etmeliyim

( " & .Name & " sayfasındaki " & .Cells(satir, sutun).Address).Value = ComboBox2.Value
boyle yaptım yine olmadı bir türlü yukardaki seçimden gelen sonucu aktaramıyorum bir işin acemisi olmak ne kadar kötü eminim basit bir şey ama beceremedim :(

kod




Private Sub CommandButton3_Click()
Dim rngGunler As Range
Dim rngGun As Range
Dim rngUrunler As Range
Dim rngUrun As Range
Dim hcr As Range
Dim sutun As Integer
Dim satir As Integer

If ComboBox1.ListIndex < 0 Then: Exit Sub
If ComboBox3.ListIndex < 0 Then: Exit Sub
If ComboBox4.ListIndex < 0 Then: Exit Sub
If ComboBox5.ListIndex < 0 Then: Exit Sub

With sh

Set rngGunler = .Range(.Cells(2, 4), .Cells(2, .Cells(2, 256).End(xlToLeft).Column))
Set rngGun = rngGunler.Find(ComboBox3, Lookat:=xlWhole)

If Not rngGun Is Nothing Then

If rngGun.MergeCells Then


Set rngGun = rngGun.MergeArea
Set rngGun = .Range(.Cells(3, rngGun.Column), .Cells(3, rngGun.Column + rngGun.Columns.Count - 1))

For Each hcr In rngGun
If hcr = ComboBox4 Then
sutun = hcr.Column
Exit For
End If
Next
End If
End If

Set rngUrunler = .Range(.Cells(4, 2), .Cells(.Cells(65536, 2).End(xlUp).Row, 2))
Set rngUrun = rngUrunler.Find(ComboBox5, Lookat:=xlWhole)

If Not rngUrun Is Nothing Then
satir = rngUrun.Row
End If

ComboBox2.Value = Range( " & .Name & " sayfasındaki " & .Cells(satir, sutun).Address)

End With

Set rngGunler = Nothing
Set rngGun = Nothing
Set rngUrunler = Nothing
Set rngUrun = Nothing

End Sub


yardım yada yorumlarınız için şimdiden teşekkürler
 
Katılım
25 Ağustos 2008
Mesajlar
10
Excel Vers. ve Dili
2003 tr
ComboBox2.Value = Range(.Name & " sayfas&#305;ndaki " & .Cells(satir, sutun).Address)
&#351;eklinde denerseniz belki ba&#351;ar&#305;l&#305; olabilir. &#246;rnek dosya g&#246;nderi,rseniz uzman arkada&#351;lar da yard&#305;mc&#305; olabilirler.
 
Katılım
25 Aralık 2005
Mesajlar
104
inan defalarca denedim ama ilgilenen yok

inan defalarca dosya gonderdim ve cevap aradm en yakın cevabı ferhat hocam verdi oda msg box atadı command botton basınca hucre degerini mesaj olarak yazıyor ama çok denememe rağmen combobox 2 yi o hucreye yazdıramadım;

saolasın senin dediğin gibi çevirdim bu seferde runtime error 1004 hatası veriyor

methd 'range'of object'_global'failed hatası veriyor

inan çıkamıyorum içinden


ferhat hocamın gonderdiği kod aşağıdaki gibiydi


Private Sub CommandButton3_Click()
Dim rngGunler As Range
Dim rngGun As Range
Dim rngUrunler As Range
Dim rngUrun As Range
Dim hcr As Range
Dim sutun As Integer
Dim satir As Integer

If ComboBox1.ListIndex < 0 Then: Exit Sub
If ComboBox3.ListIndex < 0 Then: Exit Sub
If ComboBox4.ListIndex < 0 Then: Exit Sub
If ComboBox5.ListIndex < 0 Then: Exit Sub

With sh

Set rngGunler = .Range(.Cells(2, 4), .Cells(2, .Cells(2, 256).End(xlToLeft).Column))
Set rngGun = rngGunler.Find(ComboBox3, Lookat:=xlWhole)

If Not rngGun Is Nothing Then

If rngGun.MergeCells Then


Set rngGun = rngGun.MergeArea
Set rngGun = .Range(.Cells(3, rngGun.Column), .Cells(3, rngGun.Column + rngGun.Columns.Count - 1))

For Each hcr In rngGun
If hcr = ComboBox4 Then
sutun = hcr.Column
Exit For
End If
Next
End If
End If

Set rngUrunler = .Range(.Cells(4, 2), .Cells(.Cells(65536, 2).End(xlUp).Row, 2))
Set rngUrun = rngUrunler.Find(ComboBox5, Lookat:=xlWhole)

If Not rngUrun Is Nothing Then
satir = rngUrun.Row
End If

MsgBox "Parametrelere Denk Gelen Hücre : " & .Name & " sayfasındaki " & .Cells(satir, sutun).Address

End With

Set rngGunler = Nothing
Set rngGun = Nothing
Set rngUrunler = Nothing
Set rngUrun = Nothing

End Sub
 
Katılım
25 Ağustos 2008
Mesajlar
10
Excel Vers. ve Dili
2003 tr
Bir de &#351;u kodu dener misiniz
ComboBox2.AddItem (.Name) & " sayfas&#305;ndaki " & .Cells(satir, sutun).Address
 
Katılım
25 Ağustos 2008
Mesajlar
10
Excel Vers. ve Dili
2003 tr
PArdon a&#351;a&#287;&#305;daki kodu combobox &#305;n text &#246;zelli&#287;ine girelim.
ComboBox2.text=(.Name) & " sayfas&#305;ndaki " & .Cells(satir, sutun).Address
Bu &#351;ekilde oluyor.
 
Katılım
25 Aralık 2005
Mesajlar
104
çok saol dostum

korhan ocam aşağıdaki kodu göndermiş sorunum çözüldü ama seninde emeğine desteğine sağlık senin koduda denicem bulunsun bir yerde bu olay bazen o kadar karmaşık hale geliyorki bildiğin kodlada çözülmüyor bu yüzden senin yönteminide kayda aldım tekrar emeğine sağlık sana bir şey sormalıyım bilgn dahilindeyse aşağıdaki kod commandbotonun veri aldığı yerde usermenu açıkken yapılacak değişikliği commandbotton a aktarmada yani bir nevi refresh özelliği için kullanılabilirmi ?

'Range("A1").Select
'Do While Not IsEmpty(ActiveCell)
'ActiveCell.Offset(1, 0).Select
 
Katılım
25 Aralık 2005
Mesajlar
104
çok teşekkür ederim

çok çok saolasın korhan hocamda aşağıdaki kodu yazmış bak ;


Sheets(.Name).Range(.Cells(satir, sutun).Address) = ComboBox2.Value



tekrar tekrar çok teşekkür ederim emeğine eline sağlık peki örneğimdeki ürünleri değiştiğinde bu seçime yarayan combobox içeriği üsermenu kapanmadan aşağıdaki kod yardımıyla güncenirmi sence ?





Private Sub Worksheet_Change(ByVal Target As Range)
UserForm1.combobox3 = [a1]
End Sub
 
Üst