• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Hücreden veri çekme

Katılım
8 Eylül 2008
Mesajlar
950
Excel Vers. ve Dili
2016 İngilizce
Merhabalar

Elimde aşağıdaki gibi verilerin olduğu bir excel dosyam var.

Bu dosyada alta alta ip verileri veriler göreceksiniz. bazı ip bilgilerinin altında "Fa0/xx err-disabled" verisi var
Bu tür bir veri gördüğünde Sheet2 de hemen Asütununda ilk hücreye yazsın.
ikinci gördüğünü A sütununda 2. hücreye yazsın.. bu şekilde devam etsin.

Bu Fa0/xx verisinin üstündeki ip bilgisini ise B sütununa yazsın. bu şekilde sırayla ip bilglerinide yazsın. ama dediğim gibi Fa0 olan veriler ve üstündeki ip bilgileri yazacak.

Eğer IP bilgisinin altında Fa ile başlayan satır yoksa zaten onu işleme almayacak. Örnek excel dosyası aşağıdaki lnktedir.

Bilgi ve yardımlarınızı rica ederim

Teşekkürler

vericekk.png


http://s3.dosya.tc/server29/Teg3nV/vericek.xlsx.html
 
Fa0/ ifadesini gördüğümüz her hücre için mi bu işlem olacak?
 
Ortak şartın Fa0/ olmasına göre hazırladığım aşağıdaki kodları deneyiniz:

Kod:
Sub aktar()
Set s1 = Sheets("Sheet1")
Set s2 = Sheets("Sheet2")
For i = 1 To s1.Cells(Rows.Count, 1).End(3).Row
If Left(s1.Cells(i, 1), 4) = "Fa0/" Then
yeni = s2.Cells(Rows.Count, 1).End(3).Row + 1
If s2.[a1] = "" Then yeni = 1
s2.Cells(yeni, "A") = s1.Cells(i, "A")
s2.Cells(yeni, "B") = s1.Cells(i - 1, "A")
End If
Next
End Sub
 
Evet Fa0/ ifadesini görmesi gerekiyor.

Mesela ilk Fa0/1 var. Bunu alıp sheet2 de A sütunu ilk hücreye
"Fa0/1 err-disabled" haliyle yazacak.

sonra bakmaya devam ediyor Fa0/15 i gördü
"Fa0/15 err-disabled" Sheet2 de A sütunu 2. hücreye yazacak

Bu Fa/ verilerinin üstündeki ip bilgilerini ise hemen Sheet2 de karşısındaki B sütuna ilgili satırına yazacak.
 
Hocam ben yazarken sen kodu yazmışsın bile. eyvallah deneyip sonucu yazacağım çok teşekkürler
 
@YUSUF44 Hocam Merhaba

Yukarıda resimde anlattığım işle alakalı yeni bir durum ortaya çıktı

şöyleki

örneğin 7. satırda ip görüyorsun
altındada Fa0/ ile başlayan satır var.
bu normal olan durumdu

şimdi 9. satırdada Fa0/ ile başlayan veri olabiliyor hatta 10. satırdada olabiliyor.

Görsel gösterecek olursam şöyle veriler olabiliyor.

10.10.10.10
Fa0/1 err disabled
Fa0/5 err-disabled
Gi0/2 err-disabled

Sorum yukarıdakinin aynısı. Fakat ip bilgisinin altında Fa0/1 ve Fa0/5 i varya. Tamam Fa0/1 i görünce bir üstündeki ip bilgisini yanına yazıyor. ama bu sefer gidiyor Fa0/5 i de görüyor onunda bir üstündeki Fa0/1 olan veriyi yanına yazıyor. Aslında yazması gereken 2 üstündeki ip değeri olması lazım. ve birde Fa0/ değerini görünce yaptırıyorduk ya bu işlemi Fa0/ ve Gi0/ değerinden birisini görünce yapsın yani Fa0/ da olabilir Gi0/ da olabilir.

Eğer bu biraz zorlayabilir dersen şöyle bir yöntemde izleyebiliriz.
Benim ip değerlerim 10. veya 42. ile başlıyor. 10. veya 42. değerini görüp altındaki değerFa0/ veya Gi0/ değlerinide aldırtabiliriz.

Bilgi ve yardımlarını rica ederim. yazdığın kodda biraz revize yapmak gerekecek ama benim çok yeterli bilgim yok bi kaç bişey denedim bi türlü beceremedim en son sana sorayım dedim yine.



Teşekkürler şimdiden

Edit : Fa0/ ve Gi0/ durumlarını baz almayı aşağıdaki kodda revize ettim. yukarıdaki sorunumada bir çözüm üretirsen çok sevinirim.
Kod:
If Left(s1.Cells(i, 1), 4) = "Fa0/" Or Left(s1.Cells(i, 1), 4) = "Gi0/" Then
 
Son düzenleme:
konuyla alakalı yardımcı olacak birisi var mıdır.

varolan kodların anlattığım şekilde revize edilmesi gerekiyor. Acil yardımlarınızı rica ederim
 
Aşağıdaki kodları deneyin:
Kod:
Sub aktar()
Set s1 = Sheets("Sheet1")
Set s2 = Sheets("Sheet2")
For i = 1 To s1.Cells(Rows.Count, 1).End(3).Row
    If Left(s1.Cells(i, 1), 4) = "Fa0/" Or Left(s1.Cells(i, 1), 4) = "Gi0/" Then
        yeni = s2.Cells(Rows.Count, 1).End(3).Row + 1
        If s2.[a1] = "" Then yeni = 1
        s2.Cells(yeni, "A") = s1.Cells(i, "A")
        For j = i To 1 Step -1
            If Left(s1.Cells(j, 1), 3) = "10." Or Left(s1.Cells(j, 1), 3) = "42." Then
                s2.Cells(yeni, "c") = j
                s2.Cells(yeni, "B") = s1.Cells(j, "A")
                j = 1
            End If
        Next
    End If
Next
End Sub
 
Hocam ellerine emeğine bilgine sağlık

Çok çok teşekkür ederim.
 
Aşağıdaki kodları deneyin:
Kod:
Sub aktar()
Set s1 = Sheets("Sheet1")
Set s2 = Sheets("Sheet2")
For i = 1 To s1.Cells(Rows.Count, 1).End(3).Row
    If Left(s1.Cells(i, 1), 4) = "Fa0/" Or Left(s1.Cells(i, 1), 4) = "Gi0/" Then
        yeni = s2.Cells(Rows.Count, 1).End(3).Row + 1
        If s2.[a1] = "" Then yeni = 1
        s2.Cells(yeni, "A") = s1.Cells(i, "A")
        For j = i To 1 Step -1
            If Left(s1.Cells(j, 1), 3) = "10." Or Left(s1.Cells(j, 1), 3) = "42." Then
                s2.Cells(yeni, "c") = j
                s2.Cells(yeni, "B") = s1.Cells(j, "A")
                j = 1
            End If
        Next
    End If
Next
End Sub

eğer mazur görürseniz beni şu konumdaki soruyuda değerlendirirseniz sevinirim.
http://www.excel.web.tr/f14/bir-satyra-ba-ka-bir-sheetteki-sutundan-veriyi-t145418.html

bu konuya benzer bir soru ama inanın vba bilgim sizin kadar iyi olmadığı için işin içinden çıkamıyorum. bir yere kadar geliyorum sonra tıkanıyorum.
 
Geri
Üst