Makro 64 bit deklarasyon hatası

kardelen79

Altın Üye
Katılım
18 Mayıs 2018
Mesajlar
492
Excel Vers. ve Dili
2007
Altın Üyelik Bitiş Tarihi
11-06-2025
Ben makrodan anlamıyorum öncen 32 bit excel yüklüydü şimdi 64 bit yüklü ondan mı kaynaklandı bu hata öyleyse nasıl düzeltebiliriz
 

kardelen79

Altın Üye
Katılım
18 Mayıs 2018
Mesajlar
492
Excel Vers. ve Dili
2007
Altın Üyelik Bitiş Tarihi
11-06-2025
Private Declare Function PlaySound Lib "winmm.dll" _
Alias "PlaySoundA" (ByVal lpszName As String, _
ByVal hModule As Long, ByVal dwFlags As Long) As Long

' Const SND_SYNC = &H0
' Const SND_ASYNC = &H1
Const SND_FILENAME = &H200000 'Bunun degerini degistirip sesi ayarlayabilirsin yavasligini felan



Private Sub Worksheet_Change(ByVal Target As Range)



With Sayfa6

Call bul_BuyukAL
Call bul_BuyukSAT

'Burasi AL degeri 7 líle 15 arasi ise
If .Range("BAR3").Value = "AL7" Or .Range("BAR3").Value = "AL8" Or .Range("BAR3").Value = "AL9" Or .Range("BAR3").Value = "AL10" _
Or .Range("BAR3").Value = "AL11" Or .Range("BAR3").Value = "AL12" Or .Range("BAR3").Value = "AL13" _
Or .Range("BAR3").Value = "AL14" Or .Range("BAR3").Value = "AL15" Then

Call PlaySound(ThisWorkbook.Path & "\sat.wav", 0, SND_ASYNC Or SND_FILENAME)


' If WorksheetFunction.CountIf(.Range("BAQ3:BAQ65536"), "Y*") > 0 Then Call Al
' If WorksheetFunction.CountIf(.Range("BBG3:BBG65536"), "yok*") > 0 Then Call Eks

End If

Application.Wait Now + TimeValue("00:00:02") 'Burdaki 1 demek 1 saniye 2 yaparsan 2 saniye
'Burasi Sat degeri 7 líle 15 arasi ise
If .Range("BBH3").Value = "SAT7" Or .Range("BBH3").Value = "SAT8" Or .Range("BBH3").Value = "SAT9" Or .Range("BBH3").Value = "SAT10" _
Or .Range("BBH3").Value = "SAT11" Or .Range("BBH3").Value = "SAT12" Or .Range("BBH3").Value = "SAT13" _
Or .Range("BBH3").Value = "SAT14" Or .Range("BBH3").Value = "SAT15" Then

Call PlaySound(ThisWorkbook.Path & "\sms-alert.wav", 0, SND_ASYNC Or SND_FILENAME)

End If


End With

End Sub

Sub bul_BuyukAL()

Dim bul As Range, i As Byte

With Sayfa6

.Range("BAR3").Value = ""
'On Error Resume Next
Dim arr()
arr = Array("AL15", "AL14", "AL13", "AL12", "AL11", "AL10", "AL9", "AL8", "AL7", "AL6", "AL5", "AL4", "AL3", "AL2", "AL1")

For i = LBound(arr) To UBound(arr)
On Error GoTo var
Set bul = .Range("BAR:BBF").Find(arr(i), , xlValues, 1)
If Not bul Is Nothing Then
.Range("BAR3").Value = arr(i)
GoTo son
End If
var:
Next
son:
Erase arr: i = Empty
End With
End Sub

Sub bul_BuyukSAT()

Dim bul As Range, i As Byte
With Sheets("GN SONU KAPANS")
.Range("BBH3").Value = ""
On Error Resume Next
Dim arr()
arr = Array("SAT15", "SAT14", "SAT13", "SAT12", "SAT11", "SAT10", "SAT9", "SAT8", "SAT7", "SAT6", "SAT5", "SAT4", "SAT3", "SAT2", "SAT1")

For i = LBound(arr) To UBound(arr)

Set bul = .Range("BBH:BBV").Find(arr(i), , xlValues, 1)

If Not bul Is Nothing Then
.Range("BBH3").Value = arr(i)
GoTo son
End If
Next
son:
Erase arr: i = Empty
End With
End Sub
 

kardelen79

Altın Üye
Katılım
18 Mayıs 2018
Mesajlar
492
Excel Vers. ve Dili
2007
Altın Üyelik Bitiş Tarihi
11-06-2025
bu projedeki kodun 64 bit sistemlerde kullanılmak üzere güncellenmesi gerekir. yanlış inceleme ve güncelleme .declare deyimleri ve sonra bunları PtrSafe özniteliğiyle işaretleyin
HATA UYARISI BU
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,269
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
İlk resimdeki kırmızı bölümdeki DECLARE ifadesinden sonra PTRSAFE yazıp deneyin.
 

kardelen79

Altın Üye
Katılım
18 Mayıs 2018
Mesajlar
492
Excel Vers. ve Dili
2007
Altın Üyelik Bitiş Tarihi
11-06-2025
çok sağolun halloldu
 
Üst