Nickname
Passwort | vergessen?

116 anonyme User

69081 Mitglieder freuen sich auf Dich!
Top-Aktivitäten
Sehen Sie hier, wer zu den aktivsten Mitgliedern der letzten Woche zählt:
Sponsored Links
In den Bereich Visual Basic, VBA und .Net wechseln ..

VBA Zeilen in andere Tab kopieren

  • Der Beitrag gilt als gelöst
Mitglied: matester
Geschrieben von matester (Level 1 - Frischling)
Erstellt am 30.07.2010, um 22:16:06 Uhr, Permanent-ID: 148030
Dieser Beitrag wurde bisher 300 mal aufgerufen und gilt als gelöst.
Melden Sie sich mit Ihrem Nicknamen an, um diesen Beitrag zu bewerten!
Neutral0 NeutralDruckenBeobachten
Hallo zusammen,

ohne Eure Unterstützung will es einfach nicht funktionieren!!!
23d7cc985ae29f4b21fbb16407989acb.jpg

Suche in Tab1 Spalte D nach "K/E" (wenn gefunden) dann kopiere die Nummer aus Spalte A in Tab2 in die Spalte mit den ensprechenden Tagen (siehe Bild Tab2). Nummer "809306" in die Spalte >1000 Tage.
Next "K/E.

3ab95a66fe5564bef051592cfad55352.jpg

Alle "K/E" gefunden und kopiert, weiter mit "K/M" (siehe Tab 3)

Suche in Tab1 Spalte D nach "K/M" (wenn gefunden) dann kopiere die Nummer aus Spalte A in Tab3 in die Spalte mit den ensprechenden Tagen (siehe Bild Tab3). Nummer "801561" und "802277" in die Spalte 101 - 249 Tage.
Next "K/M.

4b6375a1e8dc9dea80a8a8cab1a7be5c.jpg



Bild für die Erweiterung

f01be9742f5cd8da258df05abda72b11.jpg


Hier Bild Tab Extra 2

633a3c06073754e2707fe4ada4742d66.jpg



Ergebnis Code 2

c7ca9b8d941f418b60687a7ca3d40d98.jpg
Kommentar schreibenMit Zitat
Anmeldung erforderlich!
Bitte melden Sie sich erst mit Ihrem Nicknamen und Passwort an.
Diskussionsverlauf (7 Kommentare)
  • Kommentar bastla schreibt am 31.07.2010 um 01:18:57 Uhr
    thread
    bastla
    Hallo matester!

    Versuch es damit:
    01.
    Sub Zuordnen() 
    02.
     
    03.
    QTabelle = "Tab1" 
    04.
    QAbZeile = 2 'Daten ab Zeile 2 in 
    05.
    QSpalte = 1 'Spalte "A" 
    06.
     
    07.
    With Worksheets(QTabelle) 'Quelltabelle vorgeben 
    08.
        QZeile = QAbZeile 'in "AbZeile" beginnen 
    09.
        Nr = .Cells(QZeile, QSpalte).Value 'Nr auslesen 
    10.
        Do While Nr <> "" 'Schleife, solange noch Daten vorhanden sind 
    11.
         
    12.
            'Kennzeichen "Berich" prüfen und entsprechende Tabelle zuordnen 
    13.
            Berich = .Cells(QZeile, QSpalte + 3).Value 
    14.
            Select Case Berich 
    15.
            Case "K/E" 
    16.
                ZTabelle = "Tab2" 
    17.
            Case "K/M" 
    18.
                ZTabelle = "Tab3" 
    19.
            Case Else 
    20.
                ZTabelle = "" 
    21.
            End Select 
    22.
         
    23.
            If ZTabelle <> "" Then 'passendes Kennzeichen gefunden 
    24.
                Tage = Val(.Cells(QZeile, QSpalte + 2).Value) 'Tageanzahl lesen 
    25.
                'Zugeordnete Spalte lt Tageanzahl ermitteln 
    26.
                ZSpalte = Switch(Tage <= 100, "B", Tage < 250, "C", Tage <= 500, "D", Tage <= 750, "E", Tage <= 1000, "F", Tage > 1000, "G") 
    27.
                'Nächste freie Zelle in der entsprechenden Spalte suchen 
    28.
                ZZeile = Worksheets(ZTabelle).Cells(65536, ZSpalte).End(xlUp).Row + 1 
    29.
                 
    30.
                Worksheets(ZTabelle).Cells(ZZeile, ZSpalte).Value = Nr 'Nr eintragen 
    31.
     
    32.
            Else ' passendes Kennzeichen nicht gefunden 
    33.
                MsgBox "Für Nr " & Nr & " (siehe Zeile " & QZeile & ") konnte keine Zuordnung zu einer Zieltabelle vorgenommen werden!" 
    34.
                'Exit Sub 'Abbruch 
    35.
            End If 
    36.
         
    37.
            QZeile = QZeile + 1 'nächste Datenteile 
    38.
            Nr = .Cells(QZeile, QSpalte).Value 'Nr auslesen 
    39.
        Loop 
    40.
    End With 
    41.
    MsgBox "Fertig." 
    42.
     
    43.
    End Sub
    Da die Überschriften in den Zieltabellen für die Einordnung lt Tageanzahl nur bedingt auswertbar sind, habe ich die entsprechende Funktionaliltät (entsprechend der Vorlage gilt für jede der beide Zieltabellen die selbe Spaltenzuordnung) in der Zeile 26 mit Konstanten hinterlegt.

    Ab Zeile 33 kann (derzeit nur angedeutet) auf die Tatsache reagiert werden, dass der "Berich" weder "K/E" noch "K/M" ist; falls solche Quellzeilen einfach zu ignorieren wären, müssten nur die Zeilen 32 und 33 entfernt werden.

    Es wird vermutlich noch erforderlich sein, vorweg die Einträge ab Zeile 2 der Zieltabellen zu löschen, da die neuen Einträge immer unterhalb schon bestehendere Inhalte hinzugefügt werden. Eine passende Codezeile könnte im einfachsten Fall so aussehen:
    Worksheets("Tab2").Range("A2:G65536").ClearContents
    Grüße
    bastla
    AntwortenMit Zitat
    Anmeldung erforderlich!
    Bitte melden Sie sich erst mit Ihrem Nicknamen und Passwort an.