Soru Sayfada çift tıklama USERFORMU aç ve nesnelere aktar

sirkülasyon

Altın Üye
Katılım
10 Temmuz 2012
Mesajlar
2,530
Excel Vers. ve Dili
2021 LTSC TR
Altın Üyelik Bitiş Tarihi
18-06-2026
Sheets(“Günler”) sayfasının
B, G, L, Q, G, Q, V, AA, AF, AK, AP, AU, AZ sütununlarına 3. Satırından itibaren çift tıklandığı zaman TEKNİK isimli userformu açacak açılan userformun
Çift tıklanan Satırı Textbox26’ ya
Çift tıklanan satırın bir ilerisinde ki satırın değerini TextBox12’ ye
Çift tıklanan satırın iki ilerisinde ki satırın değerini TextBox13’ e
Çift tıklanan satırın üç ilerisinde ki satırın değerini Combobox1’ e
Çift tıklanan satırın dört ilerisindeki satırın değerini Combobox2’ ye
Aktarması için yardımcı olabilir misiniz?
NOT :
Çift tıklanan satırın üç ilerisinde ki satırın değerini Combobox1’ e ve Combobox2’ ye aktarma yaparken 380 hatası veriyor
Bir de sayfayı açıyor ama boş bırakıyor Aktarmıyor
Bazen de bir önceki çift tıklanan hücrenin değerini tekrar aktarıyor.
 

muhasebeciyiz

Altın Üye
Katılım
10 Şubat 2006
Mesajlar
724
Excel Vers. ve Dili
Office 2016
64 Bit
Altın Üyelik Bitiş Tarihi
21-12-2027
380 Hatası: Bu hata genellikle ComboBox'a uyumsuz bir veri türü aktarılması durumunda ortaya çıkar. Örneğin, ComboBox'a bir sayı yerine metin aktarmaya çalışıyorsanız veya veri boşsa bu hata oluşabilir.

Boş Aktarım: Hücrelerde beklenen değerlerin olmaması veya yanlış hücreleri seçmek bu soruna neden olabilir.
Eski Verilerin Tekrar Aktarılması: Önceki verilerin temizlenmemesi veya yanlış satırın seçilmesi bu sorunu oluşturabilir.

belirttiğiniz sütunlarda çift tıklama yapıldığında TEKNİK isimli UserForm'u açan ve ilgili verileri aktaran bir VBA kodu

Kod:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
   
    Dim targetColumns As Variant
    targetColumns = Array("B", "G", "L", "Q", "V", "AA", "AF", "AK", "AP", "AU", "AZ")
   
    Dim colIndex As Variant
    Dim found As Boolean
    found = False  
   
    For Each colIndex In targetColumns
        If Not Intersect(Target, Me.Columns(colIndex)) Is Nothing Then
            found = True
            Exit For
        End If
    Next colIndex  
   
    If Not found Or Target.Row < 3 Then Exit Sub  
   
    Cancel = True  
   
    With TEKNİK      
        .TextBox26.Value = Target.Value
        .TextBox12.Value = Target.Offset(1, 0).Value
        .TextBox13.Value = Target.Offset(2, 0).Value      
       
        If Not IsEmpty(Target.Offset(3, 0).Value) Then
            .ComboBox1.Value = Target.Offset(3, 0).Value
        Else
            .ComboBox1.Value = ""
        End If      
       
        If Not IsEmpty(Target.Offset(4, 0).Value) Then
            .ComboBox2.Value = Target.Offset(4, 0).Value
        Else
            .ComboBox2.Value = ""
        End If      
       
        .Show
    End With
End Sub

Her yeni çift tıklamada eski verilerin tekrar aktarılmasını önlemek için, UserForm'un Initialize olayında tüm kontrolleri temizleyebilirsiniz:

Private Sub UserForm_Initialize()
Me.TextBox26.Value = ""
Me.TextBox12.Value = ""
Me.TextBox13.Value = ""
Me.ComboBox1.Value = ""
Me.ComboBox2.Value = ""
End Sub

Hocam size fikir vermesi amacıyla lütfen test edermisiniz
 

sirkülasyon

Altın Üye
Katılım
10 Temmuz 2012
Mesajlar
2,530
Excel Vers. ve Dili
2021 LTSC TR
Altın Üyelik Bitiş Tarihi
18-06-2026
Teşekkür ederim. Var Olasın
 
Üst