Arama yaparak bir sheetteki bilgiyi başka bir sheete getirmek.

Katılım
17 Nisan 2007
Mesajlar
319
Excel Vers. ve Dili
Office 2013 Türkçe
Sevgili Üstadlar merhaba ,

Bir konuda sizlerin yardımına ihtiyacım var. Ek'te gönderdiğim dosyada bir aya ait ayrı ayrı açılmış sheetler var ve bunların icinde bilgiler var.Benim istediğim hergünü kontrol edecek ve bayi adı INAN ve INAN LÜLEBURGAZ olan bayileri bulacak.Bunu bulduğu yerdeki plakayı liste sheetinde o tarih icin bulacak ve F sütununa X koyacak....

Hepinize şimdiden çok ama çok teşekkür ederim...

Tşk.İyi çalışmalar...
 
Katılım
17 Nisan 2007
Mesajlar
319
Excel Vers. ve Dili
Office 2013 Türkçe
Arkadaşlar yardımcı olabilirmisiniz... :(
 
Katılım
14 Şubat 2006
Mesajlar
3,426
Excel Vers. ve Dili
(Excel 2016 - İngilizce)
Altın Üyelik Bitiş Tarihi
30-11-2022
Anladığım kadarıyla ekteki dosyada bir çalışma yaptım.Umarım doğrudur.

Kod:
Sub Kontrol()
Set s1 = Sheets("liste")
s1.Range("f:f").ClearContents

For Each say In Worksheets
If say.Name <> "liste" Then
Set s2 = Sheets(say.Name)
    plaka = s2.Cells(3, "f").Value
    For i = 3 To s2.[e65536].End(3).Row
                If s2.Cells(i, "e").Value = "" Then
            plaka = s2.Cells(i, "e").Offset(1, 1).Value
            ElseIf s2.Cells(i, "e").Value = "INAN" Or s2.Cells(i, "e").Value = "INAN L&#220;LEBURGAZ" Then
            For j = 2 To s1.[a65536].End(3).Row
                If s1.Cells(j, "b").Value = plaka Then
                    s1.Cells(j, "f").Value = "X"
                End If
            Next j
            End If
    Next i
Set s2 = Nothing
End If
Next say
Set s1 = Nothing
MsgBox "Bitti"
End Sub
 
Katılım
17 Nisan 2007
Mesajlar
319
Excel Vers. ve Dili
Office 2013 Türkçe
Say&#305;n Ripek &#252;stad&#305;m ,

&#214;ncelikle ilginizden dolay&#305; &#231;ok te&#351;ekk&#252;r ederim. Kusuruma bakmay&#305;n.Biraz ge&#231; bakabildim.Sadece &#351;&#246;yle bir hata al&#305;yorum.
Mesela , kontrol et butonuna bast&#305;&#287;&#305;m zaman 02.07 tarihinde VV 4615 plakal&#305; ara&#231; 2 ayr&#305; yere gitmi&#351;.liste sheetinde her ikisinede X i&#351;areti koymu&#351;.Ayr&#305;ca baz&#305; plakalarda og&#252;n INAN bayine gitmemesine ra&#287;men yine X i&#351;areti koyuyor.
Tekrar ilgilendi&#287;iniz i&#231;in &#231;ok te&#351;ekk&#252;r ederim.Ellerinize sa&#287;l&#305;k :)
 
Katılım
14 Şubat 2006
Mesajlar
3,426
Excel Vers. ve Dili
(Excel 2016 - İngilizce)
Altın Üyelik Bitiş Tarihi
30-11-2022
2 yere giden bir ara&#231; tek mi yaz&#305;lacak?


INAN bayisine gitmeyenleride yazabilirmisiniz?
 
Katılım
17 Nisan 2007
Mesajlar
319
Excel Vers. ve Dili
Office 2013 Türkçe
Evet say&#305;n ripek ,

2 yere giden bir ara&#231; tek yaz&#305;lacak.&#214;rne&#287;in 02.07 tarihinde VV 4615 plakal&#305; ara&#231; 2 ayr&#305; yere gitmi&#351;.Bunlardan birisi INAN digeri ba&#351;ka bir bayi.Benim icin sadece INAN bayisi olan &#246;nemli.

INAN bayisine gitmeyenlere &#246;rnek olarak ise kontrol et 'e bas&#305;l&#305;nca liste sheetinde;
03.07.2007 34 VN 6541 1832 2,04 3737,28 X
olarak g&#246;steriyor oysa bu plakal&#305; ara&#231; 03.07 de ba&#351;ka bayilere gitmi&#351;.Bununda yan&#305;na X i&#351;areti koyuyor.
T&#351;k...
 
Katılım
14 Şubat 2006
Mesajlar
3,426
Excel Vers. ve Dili
(Excel 2016 - İngilizce)
Altın Üyelik Bitiş Tarihi
30-11-2022
Burada bir sorun &#231;&#305;k&#305;yor.

Ara&#231; ayn&#305; g&#252;n 2 farkl&#305; yere gidiyorsa ve listede ba&#351;ka bir ay&#305;r&#305;m (tarih+plaka)olmad&#305;&#287;&#305; i&#231;in bunu bulmam&#305;z biraz zorla&#351;&#305;yor.

Bende listedeki Km ile sayfalardaki Km kar&#351;&#305;la&#351;t&#305;rak yapmaya &#231;al&#305;&#351;t&#305;m.

A&#351;a&#287;&#305;daki kodlar&#305; deneyebilirmisiniz?

Kod:
Sub Kontrol()
Set s1 = Sheets("liste")
s1.Range("f:f").ClearContents

For Each say In Worksheets
If say.Name <> "liste" Then
Set s2 = Sheets(say.Name)
    For i = 3 To s2.[e65536].End(3).Row
        If s2.Cells(i, "e").Value = "" Or s2.Cells(i, "e").Value = "Bayi Ad&#305;" Then
            plaka = s2.Cells(i, "e").Offset(1, 1).Value
            km = s2.Cells(i, "e").Offset(1, 2).Value
        ElseIf s2.Cells(i, "e").Value = "INAN" Or s2.Cells(i, "e").Value = "INAN LULEBURGAZ" Then
            For j = 2 To s1.[a65536].End(3).Row
                If s1.Cells(j, "b").Value = plaka And s1.Cells(j, "c").Value = km Then
                    s1.Cells(j, "f").Value = "X"
                End If
            Next j
        End If
    Next i
Set s2 = Nothing
End If
Next say
Set s1 = Nothing
MsgBox "Bitti"
End Sub
 
Katılım
17 Nisan 2007
Mesajlar
319
Excel Vers. ve Dili
Office 2013 Türkçe
Yine baz&#305; olmamas&#305; gereken yerlere X i&#351;areti koyuyor &#252;stad&#305;m...
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,614
Excel Vers. ve Dili
Pro Plus 2021
Kod:
Sub Kontrol2()
    Set s1 = Sheets("liste")
    s1.Range("F:L").ClearContents
    ReDim dizi(1 To 5, 1 To 1)
    For Each say In Worksheets
        If say.Name <> "liste" Then
            For i = 3 To say.[e65536].End(3).Row
                If say.Cells(i, "e").Value Like "INAN*" And say.Cells(i, "G") <> "" Then
                    dizi(1, UBound(dizi, 2)) = say.Cells(i, "D")
                    For x = 2 To 5
                        dizi(x, UBound(dizi, 2)) = say.Cells(i, x + 4)
                    Next x
                    ReDim Preserve dizi(1 To 5, 1 To UBound(dizi, 2) + 1)
                End If
            Next i
        End If
    Next say
    ReDim Preserve dizi(1 To 5, 1 To UBound(dizi, 2) - 1)
    s1.Select

    yy = WorksheetFunction.Transpose(dizi)
    Erase dizi

    [h1].Resize(UBound(yy), UBound(yy, 2)).Value = yy
    For x = 1 To UBound(yy)
        For y = 2 To [a65536].End(3).Row
            If CDate(Cells(y, 1)) <> CDate(yy(x, 1)) Then GoTo atla
            If Cells(y, 2) <> yy(x, 2) Then GoTo atla
            For t = 3 To 4
                If Val(Cells(y, t)) <> Val(yy(x, t)) Then
                    GoTo atla
                End If
            Next t
            Cells(y, "F") = "X"
            Exit For
atla:
        Next y
    Next x
    Set s1 = Nothing
    Erase yy
    MsgBox "Bitti"
End Sub
 
Son düzenleme:
Katılım
17 Nisan 2007
Mesajlar
319
Excel Vers. ve Dili
Office 2013 Türkçe
Say&#305;n veyselemre ,

Sadece 3 tane X i&#351;areti koydu.Toplam 14 tane olmas&#305; gerekiyor...
Ayr&#305;ca ilginize te&#351;ekk&#252;r ederim..
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,614
Excel Vers. ve Dili
Pro Plus 2021
Soruyu sorarken a&#231;&#305;klaman&#305;z yetersiz 14 tane bulaca&#287;&#305;n&#305; ba&#351;tan s&#246;ylemeniz gerekir. Ve bu 14 taneyi manuel olarak i&#351;aretlemeniz iyi olurdu.
Ayr&#305;ca siz bir kamyonda &#231;e&#351;itli 1 veya daha &#231;ok bayiye mal sevk ediyorsunuz, INAN bayisine hangi seferlerde sevkiyat yap&#305;lm&#305;&#351; onu bulmak istiyorsunuz, bu &#351;ekilde sorsayd&#305;n&#305;z daha kolay olurdu. Umar&#305;m yanl&#305;&#351; anlamam&#305;&#351;&#305;md&#305;r.
Kod:
Sub Kontrol2()
    Set s1 = Sheets("liste")
    s1.Range("F:L").ClearContents
    ReDim dizi(1 To 5, 1 To 1)
    For Each say In Worksheets
        If say.Name <> "liste" Then
            For i = 3 To say.[e65536].End(3).Row
                If say.Cells(i, "e").Value Like "INAN*" Then
                    dizi(1, UBound(dizi, 2)) = say.Cells(i, "D")
                    say.Select
                    If say.Cells(i, "G") = "" Then
                        bul = say.Cells(i, "G").End(xlUp).Row
                    Else
                        bul = i
                    End If

                    For x = 2 To 5
                        dizi(x, UBound(dizi, 2)) = say.Cells(bul, x + 4)
                    Next x
                    ReDim Preserve dizi(1 To 5, 1 To UBound(dizi, 2) + 1)
                End If
            Next i
        End If
    Next say
    ReDim Preserve dizi(1 To 5, 1 To UBound(dizi, 2) - 1)
    s1.Select

    yy = WorksheetFunction.Transpose(dizi)
    Erase dizi

    [h1].Resize(UBound(yy), UBound(yy, 2)).Value = yy
    For x = 1 To UBound(yy)
        For y = 2 To [a65536].End(3).Row
            If CDate(Cells(y, 1)) <> CDate(yy(x, 1)) Then GoTo atla
            If Cells(y, 2) <> yy(x, 2) Then GoTo atla
            For t = 3 To 4
                If Val(Cells(y, t)) <> Val(yy(x, t)) Then
                    GoTo atla
                End If
            Next t
            Cells(y, "F") = "X"
            Exit For
atla:
        Next y
    Next x
    Set s1 = Nothing
    Erase yy
    MsgBox "Bitti"
End Sub
 
Katılım
17 Nisan 2007
Mesajlar
319
Excel Vers. ve Dili
Office 2013 Türkçe
Say&#305;n Veyselemre &#252;stad&#305;m ,

Ellerinize sa&#287;l&#305;k....S&#252;per oldu...&#199;ok ama &#231;ok te&#351;ekk&#252;r ederim.
 
Üst