Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

makra- if aactivcell (zawiera tekst)

bencbenc 26 Maj 2009 14:50 1242 3
  • #1 26 Maj 2009 14:50
    bencbenc
    Poziom 2  

    mam duży problem (choć prosty :-) )
    mam tekst:

    get system name
    [in SYSTEM=name]
    name = aaa
    Number of interfaces in bridge group #1304 = 1
    "PPPoA Bridging = Enabled Number of Bridged PPPoA Sessions = 380"

    get system name
    [in SYSTEM=name]
    name =sksksk
    Number of interfaces in bridge group #1304 = 1
    "PPPoA Bridging = Enabled Number of Bridged PPPoA Sessions = 900"

    get system name
    [in SYSTEM=name]
    name = LUB_CYCOW
    Number of interfaces in bridge group #1304 = 1

    get system name
    [in SYSTEM=name]
    name = ededfr
    Number of interfaces in bridge group #1304 = 1
    "PPPoA Bridging = Enabled Number of Bridged PPPoA Sessions = 700"


    i chcę aby w nowym arkuszu kopiowane były wiersze
    w pierwszej kolumnie name = ...
    w drugiej kolumnie odpowiedni "PPPoA Bridging ...


    skrypt:


    WierKon = InputBox("wiersz koncowy")

    N = WierKon

    Sheets.Add.Name = "liczniki_pppoa" ' nowy arkusz
    Sheets("liczniki_pppoa").Select
    ActiveWorkbook.Sheets("liczniki_pppoa").Tab.ColorIndex = 3


    Sheets("Arkusz1").Select
    'WierAkt = ActiveCell.Row


    For a = 1 To N
    If ActiveCell = Cells.Find(What:="name =") Then
    Selection.Copy
    Sheets("liczniki_pppoa").Select
    Selection.Offset(1, 0).Select
    ActiveCell.Select
    ActiveCell.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
    False, Transpose:=False
    'Cells(a, 1).Select
    Sheets("Arkusz1").Select
    Selection.Offset(1, 0).Select
    'Next a 'koniec pętli
    Else
    If ActiveCell = Cells.Find(What:="PPPoA Bridging") Then
    Selection.Copy
    Sheets("liczniki_pppoa").Select
    'Cells(a, 2).Select
    ActiveCell.Select
    Selection.Offset(0, 1).Select
    ActiveCell.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
    False, Transpose:=False
    Selection.Offset(0, -1).Select
    Sheets("Arkusz1").Select
    Selection.Offset(1, 0).Select
    'Next a 'koniec pętli
    Else
    Selection.Offset(1, 0).Select
    End If
    End If

    Next a 'koniec pętli


    No nie działa. Czemu?
    Bardzo proszę o pomoc.
    Wyszukuje (PPPoA Bridging) a (name = ) nie.
    Próbowałem różnych kombinacji prześledziłem forum i nic.

    0 3
  • #2 26 Maj 2009 16:47
    adamas_nt
    Moderator Programowanie

    bencbenc napisał:
    No nie działa. Czemu?

    Bo ta pętla robi... no właśnie, trudno się połapać :)
    Może spróbuj w ten sposób (zakładam, że tekst jest w wierszach w kolumnie A)

    Edit 20:15 trochę uzupełniłem, żeby wszystko jasne było.
    Code:
    Sub Makro1()
    
    a = ActiveCell.Row
    N = InputBox("wiersz koncowy")
    If N < a Then MsgBox "za mała wartość...": Exit Sub

    Sheets.Add.Name = "liczniki_pppoa" ' nowy arkusz
    Sheets("liczniki_pppoa").Tab.ColorIndex = 3
    Sheets("Arkusz1").Select

    kolumna = 1
    licznik = 0

    For wiersz = a To N
        If Left(Cells(wiersz, kolumna), 4) = "name" Then
            licznik = licznik + 1
            Cells(wiersz, kolumna).Copy Sheets("liczniki_pppoa").Range("A" & licznik)
        ElseIf Left(Cells(wiersz, kolumna), 15) = Chr(34) & "PPPoA Bridging" Then
            Cells(wiersz, kolumna).Copy Sheets("liczniki_pppoa").Range("B" & licznik)
        End If
    Next

    Sheets("liczniki_pppoa").Select
    Columns("A:B").AutoFit

    End Sub

    0
  • #3 27 Maj 2009 14:10
    bencbenc
    Poziom 2  

    kurcze
    ok. dzila ale ja mam w tekscie
    PPPoA Bridging =...
    bez "PPPoA Bridging =...
    co za to odpowiada

    Dodano po 9 [minuty]:

    oki
    zoriętowałem się
    wielkie dzięki

    0
  • #4 28 Maj 2009 11:47
    bencbenc
    Poziom 2  

    Nie wiesz moze jak zastpic w kodzie "kwadracik" tj. TABulator ?
    Obszedłem to ale niezbyt elegancko.
    Jezeli możesz to podpowiedz jak wczytać plik
    Znalazłem coś takiego a chodzi mi o podanie konkretnej maszyny i ścieżki np.
    126.10.1.2 d/public

    tu musi być w tym samym katalogu

    Sub czytajtxt()

    Open ThisWorkbook.Path & "/tekst.txt" For Input As #1
    wiersz = 0

    Do While Not EOF(1)
    Line Input #1, data
    ActiveCell.Offset(wiersz, 0) = data
    wiersz = wiersz + 1
    Loop

    Close #1

    End Sub

    0
  Szukaj w 5mln produktów