Soru VBA Kodundaki Hata nereden Kaynaklanıyor

Katılım
20 Haziran 2008
Mesajlar
697
Excel Vers. ve Dili
Microsoft Office ev ve iş 2019
Altın Üyelik Bitiş Tarihi
03-07-2024
Merhabalar;

Youtube'da izlediğim bir videonun aynısını yaptım fakat buton kodları çalışmıyor, hata veriyor
Add Picture butonu tıklıyorum Resim seçiyorum Kaydederken Type Mismatsch hatası veriyor debug olarak bu satırı gösteriyor If imagepath <> False Then
Clear
butonunda keza yine hata veriyor

kodlardaki hatanın giderilmesi için yardımcı olabilirmisiniz

Not: Kodların videosu 3.sayfada yeralmaktadır.
 

Ekli dosyalar

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,800
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Sayfanın kod bölümünde en üst te bu kodu kullanmışsınız

Option Explicit

Bu tanımlama kodunu kullanıyorsanız değişkenleri mutlaka Dim fonksiyonuyla tanımlamanız gerekiyor.

kodları kontrol ediniz.

Kod:
Option Explicit

Private Sub cmdAdd_Click()
On Error Resume Next
Dim imagepath As String
imagepath = Application.GetOpenFilename(filefilter:="Picture files,*.gif;*.jpg;*.jpeg", Title:="Add Picture")

If imagepath <> False Then
Sheet1.Image1.Picture = LoadPicture(imagepath)
Sheet1.Image1.Visible = True
End If
End Sub

Private Sub cmdClear_Click()

Dim PicClear As String

Sheet1.Range("E7").Value = ""
Sheet1.Range("E9").Value = ""
Sheet1.Range("E11").Value = ""
Sheet1.Range("E13").Value = ""
Sheet1.Range("D3").Value = ""

PicClear = ThisWorkbook.Path & "\No Picture.jpg" '   Sheet1.Range("A19").Value
Sheet1.Image1.Picture = LoadPicture(PicClear)
Sheet1.Image1.Visible = True

Sheet1.Range("A19").Value = PicClear

End Sub

Private Sub cmdSave_Click()
Dim LastRow As Long
Dim PicPath As String
Dim NamePic As String
Dim PicClear As String


If Sheet1.Range("E7").Value = "" Then MsgBox "Please enter the Name", vbCritical: Exit Sub
If Sheet1.Range("E9").Value = "" Then MsgBox "Please enter Email", vbCritical: Exit Sub
If Sheet1.Range("E11").Value = "" Then MsgBox "Please enter Phone number", vbCritical: Exit Sub
If Sheet1.Range("E13").Value = "" Then MsgBox "Please enter the country", vbCritical: Exit Sub

LastRow = Sheet2.Range("A" & Rows.Count).End(xlUp).Row + 1

Sheet2.Cells(LastRow, "A").Value = Sheet1.Range("E7").Value
Sheet2.Cells(LastRow, "B").Value = Sheet1.Range("E9").Value
Sheet2.Cells(LastRow, "C").Value = Sheet1.Range("E11").Value
Sheet2.Cells(LastRow, "D").Value = Sheet1.Range("E13").Value

NamePic = Sheet1.Range("E7").Text
SavePicture Image1.Picture, ThisWorkbook.Path & "\" & NamePic & ".jpg"
PicPath = ThisWorkbook.Path & "\" & NamePic & ".jpg"

Sheet2.Cells(LastRow, "E").Value = PicPath
MsgBox "Save Success", vbInformation

Sheet1.Range("E7").Value = ""
Sheet1.Range("E9").Value = ""
Sheet1.Range("E11").Value = ""
Sheet1.Range("E13").Value = ""
Sheet1.Range("D3").Value = ""


PicClear = Sheet1.Range("A19").Value
Sheet1.Image1.Picture = LoadPicture(PicClear)
Sheet1.Image1.Visible = True


End Sub

Private Sub cmdSearch_Click()

Dim Lsearch As Integer
Dim PicClear As String

Sheet2.Range("G1").Value = Sheet1.Range("D3").Value

If IsNumeric(Sheet2.Range("F1").Value) = True Then
Lsearch = Sheet2.Range("F1").Value

Sheet1.Range("E7").Value = Sheet2.Cells(Lsearch, "A").Value
Sheet1.Range("E9").Value = Sheet2.Cells(Lsearch, "B").Value
Sheet1.Range("E11").Value = Sheet2.Cells(Lsearch, "C").Value
Sheet1.Range("E13").Value = Sheet2.Cells(Lsearch, "D").Value

PicSearch = Sheet2.Cells(Lsearch, "E").Value
Sheet1.Image1.Picture = LoadPicture(PicSearch)
Sheet1.Image1.Visible = True

Else
MsgBox "This contact does not exist"

End If

End Sub
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Halit üstadım, bu Option satırını kullanmanın tanımlamaya zorlamak dışında, işlev açısından bir gerekliliği var mı?
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,800
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Evet mutlaka var
Tam olarak bilmemekteyim ancak bir kaç defa hata aldığımı hatırlıyorum.
Buradaki etki kod bölümünde kodlar çok ise değişken tanımlamalar yapılmamışsa değişkenler bazen hata vermektedir.
 
Katılım
20 Haziran 2008
Mesajlar
697
Excel Vers. ve Dili
Microsoft Office ev ve iş 2019
Altın Üyelik Bitiş Tarihi
03-07-2024
Teşekkürler Üstadım..

Dim imagepath As String
imagepath = Application.GetOpenFilename(filefilter:="Picture files,*.gif;*.jpg;*.jpeg", Title:="Add Picture")

If imagepath <> False Then
Sheet1.Image1.Picture = LoadPicture(imagepath)
Sheet1.Image1.Visible = True
End If

buradaki if bloğunda hata döndü
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Halit üstadım, bu Option satırını kullanmanın tanımlamaya zorlamak dışında, işlev açısından bir gerekliliği var mı?
Option Explicit tanımlamasını kullanmak gerekli değildir. Tercih size kalmıştır. Projenizde eğer değişkenleri mutlaka tanımlamak istiyorsanız, bu komut size tanımlama yapmayı zorunlu kılarak uyarı yapacaktır. Yani projenizde hata yapmanızı engellemiş olacaktır. Bu satırı kullanmazsanız, tanımlanmamış tüm değişkenler varyant olarak kabul edilerek işlem yapılır. Aşağıdaki linki incelemenizi öneririm. Değişkenler, programlamanın en önemli konularından birisidir.

 
Son düzenleme:
Üst