• DİKKAT

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

Sayfa Gizlenince VBA Çalışmıyor

Katılım
20 Nisan 2012
Mesajlar
78
Excel Vers. ve Dili
Ofis 365 TR 32 Bit
Merhaba Dostlar,

Ekte bir apart kayıt çalışmam var. Bu excel açıldığında otomatik olarak Userform3 açılsın istiyorum (bu kısmı yaptım sorun yok) Lakin application Visiblae = false yapınca;

Userform4'teki aşağıdaki formül hata veriyor. (Hata vermemesi için application hide olmaması gerekiyor yani excel aşağıda açık olmalı ve excelde de data sayfası aktif olunca çalışıyor. Benim istediğim ise kullanıcı excel'i hiç görmesin tüm işlemleri userformlar üzerinden yapsın)

Aşağıdaki range ile başlayan alanı worksheets("data").range olacak şekilde yapsamda olmuyor. Kontrol edebilirmisiniz ?

Private Sub CommandButton1_Click()

aranan = TextBox8.Value
Range("A:A").Find(aranan).Select
satir = ActiveCell.Row

Worksheets("data").Cells(satir, 2) = ComboBox1.Value
Worksheets("data").Cells(satir, 3) = TextBox2.Value
Worksheets("data").Cells(satir, 4) = TextBox3.Value
Worksheets("data").Cells(satir, 5) = TextBox4.Value
Worksheets("data").Cells(satir, 6) = TextBox5.Value
Worksheets("data").Cells(satir, 7) = ComboBox2.Value
Worksheets("data").Cells(satir, 8) = TextBox7.Value

MsgBox "Degisiklikler kaydedildi!"

ComboBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
TextBox4.Text = ""
TextBox5.Text = ""
TextBox7.Text = ""
ComboBox2.Text = ""
 

Ekli dosyalar

Şu şekilde güncelleyin;

satir = Range("A:A").Find(aranan).row
 
Select ile biten satırı silmelisiniz. Satir bilgisi ilettiğim kodlar ile seçilen hücreden değil, bulunan hücrenin satırından direk geliyor.
 
aranan = TextBox8.Value
Worksheets("Data").Range("A:A").Find(aranan).Select
satir = Range("A:A").Find(aranan).Row

Formülü yukarıdaki şekilde revize ettim bu sefer select hatası alıyorum.
 

Ekli dosyalar

  • 2.png
    2.png
    4.7 KB · Görüntüleme: 3
Tamam
Select ile biten satırı silmelisiniz. Satir bilgisi ilettiğim kodlar ile seçilen hücreden değil, bulunan hücrenin satırından direk geliyor.
satir = worksheets("data").Range("A:A").Find(aranan).row

bu şekilde yapınca sorun çözüldü. En önemli sorun application visible false yapınca sorun var farklı bir yerde.
 
Son düzenleme:
@DoğanD kodu revize ettim lakin autopen da application visible false yapınca hata alıyorum ben. Ekteki halini inceler misin rica etsem ? Aşağıdaki sarı yer hata veriyor.

Private Sub UserForm_Activate()
Dim sh As Worksheet, i As Long, sonsat As Long, X As Long
Dim k As Integer
tarih = Date
sonTarih = DateSerial(2023, 11, 30)
Set sh = Worksheets("data")
ListBox1.Clear
ListBox1.ColumnCount = 8
ListBox1.IntegralHeight = False
ListBox1.ColumnHeads = False
sonsat = sh.Cells(Rows.Count, "B").End(xlUp).Row
For i = 2 To sonsat
If sh.Cells(i, "D").Value >= tarih And sh.Cells(i, "C").Value <= tarih Then
ListBox1.AddItem
For k = 0 To 8
ListBox1.List(X, k) = sh.Cells(i, k + 1).Value
Next k
X = X + 1
End If
Next i
End Sub
 

Ekli dosyalar

Son düzenleme:
Tekrar merhaba,

Bende sorunsuz açılıyor. Sadece Listbox'tan seçim yapmadan Düzenle butonuna tıklayınca hata alıyorum, o da başka satırda.

247822
 
Tekrar merhaba,

Bende sorunsuz açılıyor. Sadece Listbox'tan seçim yapmadan Düzenle butonuna tıklayınca hata alıyorum, o da başka satırda.

Ekli dosyayı görüntüle 247822
@DoğanD Çok teşekkürler, kontrol sağlıyorum bende malesef hata veriyor sebebini bilmediğim şekilde. Peki aşağıdaki kod neden hata verir, Vlookup çalışmıyor hata veriyor. ?

Private Sub ComboBox1_Change()
arananoda = Application.WorksheetFunction.VLookup(ComboBox1.Text, Sheets("Rooms").Range("B2:C18"), 2, 0)
TextBox7.Value = arananoda
End Sub
 
Dosyanızda bu kodu bulamadım. Fakat oda numarasını aranan alanda bulamıyor gibi görünüyor. Bunun için On Error işlevini kullanabilir yada düşeyara yapmadan önce oda numarası olup olmadığını kontrol edebilirsiniz.
 
Dosyanızda bu kodu bulamadım. Fakat oda numarasını aranan alanda bulamıyor gibi görünüyor. Bunun için On Error işlevini kullanabilir yada düşeyara yapmadan önce oda numarası olup olmadığını kontrol edebilirsiniz.
@DoğanD Doğan bey, bu formülü yeni ekledim. Userform4 te kullanıcı yeni rezervasyon yaratırken oda numarasını seçtiğinde, en alttaki texbox'ta o odanın dolu mu boş mu olduğu bilgisi otomatik gelsin diye kodlamıştım. Ama yine işin içinden çıkamadım :) güncel dosya ektedir.
 

Ekli dosyalar

Userform4.Activate altındaki Textbox7 kodunu aşağıdaki gibi düzenler misiniz?

Kod:
TextBox7.Text = WorksheetFunction.VLookup(Val(ComboBox1.Value), Sayfa2.Range("B:C"), 2, 0)
 
Geri
Üst