StrDosyaAdi = Dir$(ThisWorkbook.Path & "\*.xlsm") sadece .xlsm ile biten ilk dosyayı alır
5 tane Excel dosyası olsa bile
StrDosyaAdi =excel1.xlsm olur diğer dosyaları incelemez.
klasörde tek Excel dosyası varsa sorun değil ama birden fazla Excel dosyasında sadece kodun bu kısmını yazarsanız işe yaramaz.
asıl kod aşağıdak gibi olmalı.
StrDosyaAdi = Dir$(ThisWorkbook.Path & "\*.xlsm")
Do While StrDosyaAdi <> ""
'.....yapılacak işler mesela If InStr(StrDosyaAdi, CStr(Range("G6").Value), 1 )>0 Then
StrDosyaAdi = Dir$
Loop
siz and instr().... kısmı olsun mu istiyorsunuz olmasın mı tam anlamadım son cümleniz ve ondan 1 önceki cümlenizden zıt anlamlar çıkıyor.)