Belli aralikta değerlere göre makrolar çalışsın

Katılım
16 Eylül 2023
Mesajlar
15
Excel Vers. ve Dili
2019-tr
Selamlar bayramınız mübarek olsun. Excel 365 kullaniyorum . A 1 ve A12 sütunlar arasindaki sayılara göre 1ise makro1 ,2 ise makro2, vb çalışmasini istiyorum. makro kodu nasil yapmam gerekiyor şimdiden tesekkurler
 

cems

Altın Üye
Katılım
2 Eylül 2005
Mesajlar
2,572
Excel Vers. ve Dili
office 2010 tr 32bit
Altın Üyelik Bitiş Tarihi
13-06-2029
Selamlar bayramınız mübarek olsun. Excel 365 kullaniyorum . A 1 ve A12 sütunlar arasindaki sayılara göre 1ise makro1 ,2 ise makro2, vb çalışmasini istiyorum. makro kodu nasil yapmam gerekiyor şimdiden tesekkurler
İşlemi yapacak oldugunuz sayfada sayfada degisim oldugunda ENTER ile calısacak kod


Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim hucre As Range
    Dim degisen As Range
    Set degisen = Intersect(Target, Range("A1:A12"))
  
    If degisen Is Nothing Then Exit Sub
  
    Application.EnableEvents = False
  
    For Each hucre In degisen
        If IsNumeric(hucre.Value) Then
            Select Case hucre.Value
                Case 1
                    Call Makro1
                Case 2
                    Call Makro2
                Case 3
                    Call Makro3
                ' Diğer sayıları burada ekleyebilirsin
                Case Else
                    MsgBox "Tanımlı olmayan bir sayı girildi: " & hucre.Value, vbExclamation, "Uyarı"
            End Select
        Else
            MsgBox "Bu bir sayı değil: """ & hucre.Value & """", vbExclamation, "Hatalı Giriş"
        End If
    Next hucre
  
    Application.EnableEvents = True
End Sub
Modul1 icine verdiginiz sayıya gore calısacak kod

Kod:
Sub Makro1()
    MsgBox "Makro 1 çalıştı!"
End Sub

Sub Makro2()
    MsgBox "Makro 2 çalıştı!"
End Sub

Sub Makro3()
    MsgBox "Makro 3 çalıştı!"
End Sub

Olarak yazın ve .xlsm olarak masaustune kaydedin. Sonra sayfa1 a1 de 1 ya da 2 ya da 3 yazarak deneyin. Sayı dışında girişte uyarır.
Notlar:
1-Excel 2010 tr ile A1 Hucresinde degişim anlayarak uyguladım , 365 te de aynı tepkiyi verir sanıyorum.
2-A1-A12 arasında herhangi bir sutunda calısma kasdetti iseniz bu aralıktaki her hucreye ayrı ayrı kopya kod yazmak gerekebilir.
 

Ekli dosyalar

Son düzenleme:
Katılım
16 Eylül 2023
Mesajlar
15
Excel Vers. ve Dili
2019-tr
Selamlar. Sayfa degisince değil comand butona ekliyecegim.butona bastığımda sutunda olan sayılara göre makrolar calissin istiyorum.yoksa teker teker hucre icin yazarsam cok uğrastirir.1300 adet kod yazmam gerek.eğersay veya bul komutuylla makroyla uygulanabilir mi? teşekürler
 
Son düzenleme:

cems

Altın Üye
Katılım
2 Eylül 2005
Mesajlar
2,572
Excel Vers. ve Dili
office 2010 tr 32bit
Altın Üyelik Bitiş Tarihi
13-06-2029
365teki yetenekler yuksek ama bende 2010 var. Ustelik ornek de eklemezseniz orası oldu burası hatalı yorumları uzar gider ve sonucta size destek olan da konuyu bırakabilir. En dogrusu birebir ve bir kac satır veri olan bir ornek dosya yuklerseniz 365 exceli olan bir uye daha az tartışmalı cozum onerebilir
 
Katılım
16 Eylül 2023
Mesajlar
15
Excel Vers. ve Dili
2019-tr
Sagolun ilgilendiğiniz için .basit anlattim makro calışınca aralıktaki sayi cinsinden makroların çalışmasını istedim. Aralık ornek a1:a12 sutununda ornegin 1 sayısı varsa makro 1 çalışsın 2 varsa makro 2 çalışsın. Yani eğersay gibi saysin aralıkta bulursa 1 makro çalıssın tarzıda olabilir.
 
Son düzenleme:
Katılım
16 Eylül 2023
Mesajlar
15
Excel Vers. ve Dili
2019-tr
365teki yetenekler yuksek ama bende 2010 var. Ustelik ornek de eklemezseniz orası oldu burası hatalı yorumları uzar gider ve sonucta size destek olan da konuyu bırakabilir. En dogrusu birebir ve bir kac satır veri olan bir ornek dosya yuklerseniz 365 exceli olan bir uye daha az tartışmalı cozum onerebilir
Basit bir yolu var mı fikir istedim sadece
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
43,112
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Merhaba,

A sütunundaki sayısal değere ilişkin makro varsa çalıştırılır. Yoksa olmayan makro kodları listelenir.

C++:
Option Explicit

Sub Number_to_Macro()
    Dim Rng As Range, Mesaj As String
    
    On Error Resume Next
    
    For Each Rng In Range("A:A").SpecialCells(xlCellTypeConstants, 1)
        Application.Run "Makro_" & Rng.Value
        If Err.Number = 1004 Then
            Mesaj = Mesaj & vbCr & Rng.Value
        End If
    Next

    MsgBox "Bazı makrolar bulunamadı!" & vbCr & Mesaj
End Sub
 
Üst