Kod ile belirli sayıları belirli hücrelere koşullu yazdırma

Musabilennn

Altın Üye
Katılım
23 Haziran 2023
Mesajlar
11
Excel Vers. ve Dili
vba
Altın Üyelik Bitiş Tarihi
18-10-2025
Merhabalar,
aşağıdaki resimde reklamasyon butonuna bastığımda;
247222
aşağıdaki makro çalışıyor;
247224
ve M ve P sütununa sırasıyla bu kodları yazıyor;
247225
ama bunu yaparken sırasıyla yaptığı için zaman alıyor ve kasıyor az da olsa, hem birden hepsini birden yazdırmak istiyorum hemde değişken olan 6 farklı makro yazdım bunu özetlemek istiyorum.
6 farklı kod;
Sub REKLAMASYON()
'reklamasyon gelir ve gider muavinini döker
Sayfa16.Select
Range("M2").Select
ActiveCell = "602 001 003"
Range("m3").Select
ActiveCell = "yok"
Range("m4").Select
ActiveCell = "yok"
Range("m5").Select
ActiveCell = "yok"
Range("m6").Select
ActiveCell = "yok"

Range("p2").Select
ActiveCell = "612 001"
Range("p3").Select
ActiveCell = "610 001 001"
Range("p4").Select
ActiveCell = "yok"
Range("p5").Select
ActiveCell = "yok"
Range("p6").Select
ActiveCell = "yok"
Range("p7").Select
ActiveCell = "yok"
Range("p8").Select
ActiveCell = "yok"
Range("p9").Select
ActiveCell = "yok"
Range("a1").Select
End Sub
Sub FİYATFARKI()
'fiyat farkı gelir ve gider muavinini döker
Sayfa16.Select
Range("M2").Select
ActiveCell = "602 001 002"
Range("m3").Select
ActiveCell = "yok"
Range("m4").Select
ActiveCell = "yok"
Range("m5").Select
ActiveCell = "yok"
Range("m6").Select
ActiveCell = "yok"

Range("p2").Select
ActiveCell = "612 002"
Range("p3").Select
ActiveCell = "yok"
Range("p4").Select
ActiveCell = "yok"
Range("p5").Select
ActiveCell = "yok"
Range("p6").Select
ActiveCell = "yok"
Range("p7").Select
ActiveCell = "yok"
Range("p8").Select
ActiveCell = "yok"
Range("p9").Select
ActiveCell = "yok"
Range("a1").Select
End Sub
Sub YANSITMA()
'yansıtma gelir ve gider muavinini döker
Sayfa16.Select
Range("M2").Select
ActiveCell = "649 002"
Range("m3").Select
ActiveCell = "yok"
Range("m4").Select
ActiveCell = "yok"
Range("m5").Select
ActiveCell = "yok"
Range("m6").Select
ActiveCell = "yok"

Range("p2").Select
ActiveCell = "659 002"
Range("p3").Select
ActiveCell = "yok"
Range("p4").Select
ActiveCell = "yok"
Range("p5").Select
ActiveCell = "yok"
Range("p6").Select
ActiveCell = "yok"
Range("p7").Select
ActiveCell = "yok"
Range("p8").Select
ActiveCell = "yok"
Range("p9").Select
ActiveCell = "yok"
Range("a1").Select
End Sub
Sub TEŞVİK()
'teşvik gelir muavinini döker
Sayfa16.Select
Range("M2").Select
ActiveCell = "649 001"
Range("m3").Select
ActiveCell = "649 004"
Range("m4").Select
ActiveCell = "649 005"
Range("m5").Select
ActiveCell = "649 006"
Range("m6").Select
ActiveCell = "649 007"

Range("p2").Select
ActiveCell = "yok"
Range("p3").Select
ActiveCell = "yok"
Range("p4").Select
ActiveCell = "yok"
Range("p5").Select
ActiveCell = "yok"
Range("p6").Select
ActiveCell = "yok"
Range("p7").Select
ActiveCell = "yok"
Range("p8").Select
ActiveCell = "yok"
Range("p9").Select
ActiveCell = "yok"
Range("a1").Select
End Sub
Sub KURFARKI()
'kurfarkı gelir ve gider muavinini döker
Sayfa16.Select
Range("M2").Select
ActiveCell = "646 001"
Range("m3").Select
ActiveCell = "602 001 005"
Range("m4").Select
ActiveCell = "yok"
Range("m5").Select
ActiveCell = "yok"
Range("m6").Select
ActiveCell = "yok"

Range("p2").Select
ActiveCell = "780 002"
Range("p3").Select
ActiveCell = "656 001"
Range("p4").Select
ActiveCell = "yok"
Range("p5").Select
ActiveCell = "yok"
Range("p6").Select
ActiveCell = "yok"
Range("p7").Select
ActiveCell = "yok"
Range("p8").Select
ActiveCell = "yok"
Range("p9").Select
ActiveCell = "yok"
Range("a1").Select
End Sub
Sub KKEG()
'kkeg gider muavinini döker
Sayfa16.Select
Range("M2").Select
ActiveCell = "yok"
Range("m3").Select
ActiveCell = "yok"
Range("m4").Select
ActiveCell = "yok"
Range("m5").Select
ActiveCell = "yok"
Range("m6").Select
ActiveCell = "yok"

Range("p2").Select
ActiveCell = "689 001"
Range("p3").Select
ActiveCell = "689 002"
Range("p4").Select
ActiveCell = "689 003"
Range("p5").Select
ActiveCell = "689 004"
Range("p6").Select
ActiveCell = "689 005"
Range("p7").Select
ActiveCell = "689 006"
Range("p8").Select
ActiveCell = "689 007"
Range("p9").Select
ActiveCell = "689 008"
Range("a1").Select
End Sub

şimdiden teşekkürler
 

Ekli dosyalar

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
Önerilerim aşağıdaki gibidir. Her seferinde hücreleri seçtirmenize gerek yok. Örneğin;



Kod:
Range("M2").Select
ActiveCell = "602 001 003"

yerine

Range("M2")="602 001 003"

şeklinde yazın.

Ayrıca

Range("m3").Select
ActiveCell = "yok"
Range("m4").Select
ActiveCell = "yok"
Range("m5").Select
ActiveCell = "yok"
Range("m6").Select
ActiveCell = "yok"

Yukarıdaki gibi ardışık giden hücrelere aynı veri yazılıyorsa bunun yerine aşağıdaki gibi yazın.

Range("m3:m6")= "yok"
 

Musabilennn

Altın Üye
Katılım
23 Haziran 2023
Mesajlar
11
Excel Vers. ve Dili
vba
Altın Üyelik Bitiş Tarihi
18-10-2025
Önerilerim aşağıdaki gibidir. Her seferinde hücreleri seçtirmenize gerek yok. Örneğin;



Kod:
Range("M2").Select
ActiveCell = "602 001 003"

yerine

Range("M2")="602 001 003"

şeklinde yazın.

Ayrıca

Range("m3").Select
ActiveCell = "yok"
Range("m4").Select
ActiveCell = "yok"
Range("m5").Select
ActiveCell = "yok"
Range("m6").Select
ActiveCell = "yok"

Yukarıdaki gibi ardışık giden hücrelere aynı veri yazılıyorsa bunun yerine aşağıdaki gibi yazın.

Range("m3:m6")= "yok"
teşekkürler bayağı fazlalıklardan kurtarır peki daha da nasıl özetlenir for döngüsü ile yazılabilir mi
 

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
Döngüye gerek yok.

Ardışık giden hem m hem de p sütunundaki hücrelere tek satırda "yok" yazabilirsiniz. Bir tanesini ben aşağıdaki gibi düzenledim.
Kod:
Sub REKLAMASYON()
'reklamasyon gelir ve gider muavinini döker

Sayfa16.Select

Range("M2")= "602 001 003"
Range("p2")= "612 001"
Range("p3")= "610 001 001"

Range("m3:m6,p4:p9")= "yok"

End Sub
 
Son düzenleme:

Musabilennn

Altın Üye
Katılım
23 Haziran 2023
Mesajlar
11
Excel Vers. ve Dili
vba
Altın Üyelik Bitiş Tarihi
18-10-2025
Döngüye gerek yok.

Ardışık giden hem m hem de p sütunundaki hücrelere tek satırda "yok" yazabilirsiniz. Bir tanesini ben aşağıdaki gibi düzenledim.
Kod:
Sub REKLAMASYON()
'reklamasyon gelir ve gider muavinini döker

Sayfa16.Select

Range("M2")= "602 001 003"
Range("p2")= "612 001"
Range("p3")= "610 001 001"

Range("m3:m6,p4:p9")= "yok"

End Sub
çok teşekkür ederim.
 
Üst