Makrolu Dosya açılışında hata

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
2,974
Excel Vers. ve Dili
Office 2013 İngilizce
Merhabalar,
Ekli dosya "Worksheet_Change" ve "Worksheet_SelectionChange" olaylarında;
seçilen hücrede otomatik veri doğrulama oluşturması için aşağıdaki kodlar mevcut;

Yalnız dosyaı açıp kapattıkten sonra ekli görseldeki açarken ekli hata mesajını veriyor.

sıfırdan dosya oluşturuyordum, kaydettikten sonra kapatıp açtıktan sonra tekrar aynı hatayı vermekte;
işin içinden bir türlü çıkamıyorum, bu nedenle size dosyayı paylaşmk durumda kaldım.

yardımcı olursanız çok sevinirim, diğer durumda kafayı yiyeceğim.

desteğiniz için şimdiden teşekkürler,


Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim myRng As Range
Dim metin As String
Dim t As Byte
Dim c As Integer

On Error Resume Next


If Target.Columns.Count > 1 Then Exit Sub
If Target.Rows.Count > 1 Then Exit Sub

If Target.Column < 6 Or Target.Column > 11 Then Exit Sub

c = Target.Column

If c = 6 Or c = 11 Then

    If Target.Value = "" Then
         Target.Offset(, 1).Validation.Delete
         Target.Offset(, 1) = ""
        Exit Sub
    End If
    
     metin = Target.Value
           
        Select Case metin
            Case "Round": t = 1
            Case "Oval": t = 4
            Case "Emerald": t = 7
            Case "Pear": t = 10
        End Select
    
    If t > 0 Then
        Set myRng = Target.Offset(, 1)
        myRng = ""
        dataValid myRng, t
    End If
    
     Set myRng = Nothing
    
End If


End Sub
Kod:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim c As Integer
Dim t As Integer

On Error Resume Next

If Target.Columns.Count > 1 Then Exit Sub
If Target.Rows.Count > 1 Then Exit Sub
If Target.Value <> "" Then Exit Sub

If Target.Column <> 6 And Target.Column <> 11 Then Exit Sub

If ActiveCell.Borders.Item(xlEdgeLeft).LineStyle <> 1 Then Exit Sub

t = validationtype(Target)
If t > 2 Then Exit Sub


Dim MyList(3) As String
MyList(0) = "Round"
MyList(1) = "Oval"
MyList(2) = "Emerald"
MyList(3) = "Pear"

c = Target.Column

If c = 6 Or c = 11 Then

    With Target.Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
             Operator:=xlBetween, Formula1:=Join(MyList, ",")
    End With
End If

End Sub
 

Ekli dosyalar

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
5,877
Excel Vers. ve Dili
2019 Türkçe
Merhaba.
Sorun VBA kısmı ile alakalı değil, dosya bozulmuş.
 

Ekli dosyalar

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
2,974
Excel Vers. ve Dili
Office 2013 İngilizce
Merhaba.
Sorun VBA kısmı ile alakalı değil, dosya bozulmuş.
Muzaffer Hocam ilginize teşekkürler,
göndermiş olduğunuz dosya da Price sayfasında;
"Worksheet_Change" ve "Worksheet_SelectionChange" olayları boş durumdaydı; yukarıdaki kodları ekledikten sonra;
bir kaç defa kapatıp açınca yine aynı hatayı vermeye başladı.

iyi günler
 

Ekli dosyalar

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
2,974
Excel Vers. ve Dili
Office 2013 İngilizce
Muzaffer Hocam ilginize teşekkürler,
göndermiş olduğunuz dosya da Price sayfasında;
"Worksheet_Change" ve "Worksheet_SelectionChange" olayları boş durumdaydı; yukarıdaki kodları ekledikten sonra;
bir kaç defa kapatıp açınca yine aynı hatayı vermeye başladı.

iyi günler
Merhaba Arkadaşlar,
sorunun sebebini niyahet buldum
burada myList içierindeki elaman sayısı fazla olunca sıkıntı oluşturuyor,
elaman sayısı 30' u geçince bu sıkıntıyı oluşturuyor.

Kod:
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
             Operator:=xlBetween, Formula1:=Join(MyList, ",")
her şey için teşekkürler,
iyi çalışmalar.
 
Üst