2 Zeilen mit ActiveCell.Row ausgeben

  • Excel

Es gibt 11 Antworten in diesem Thema. Der letzte Beitrag () ist von michael81.

    2 Zeilen mit ActiveCell.Row ausgeben

    Hallo,

    ich lese mit i = ActiveCell.Row ein und gebe dann auf einen anderen Tabellenblatt die benötigten daten wieder aus.
    Soweit ist das auch keine schwierigkeit. Aber wie komme ich an die Daten wenn 2 Zeilen markiert werden?

    Ach, kann man durch eine if, then schleife erkennen lassen ob eine oder
    zwei Zeilen markiert sind und jeweils ein anderes Tabellenblatt
    ausfüllen lassen.
    Tabellenblatt "HR" wenn eine Zeile markiert ist und
    Tabellenblatt "GHR" wenn 2 Zeilen markiert sind.

    Bisher sieht es für eine markierte Zeile so aus:

    Visual Basic-Quellcode

    1. Sub drucken()
    2. ' drucken Makro
    3. 'Fensterflacker abschalten
    4. Application.ScreenUpdating = False
    5. 'um die aktuelle Zeile zu ermitteln
    6. i = ActiveCell.Row
    7. 'Die Variabeln in HR einfügen
    8. Sheets("hr").Range("B8").Value = Cells(i, 2)
    9. Sheets("hr").Range("d8").Value = Cells(i, 6)
    10. Sheets("hr").Range("e8").Value = Cells(i, 10)
    11. 'Wenn SM ausgefüllt ist die SM durch ein O austauschen.
    12. If Cells(i, 8) <> "" Then
    13. Sheets("hr").Range("c8") = "O"
    14. Else
    15. Sheets("hr").Range("c8") = ""
    16. End If
    17. End Sub


    Mfg
    Du willst ja mehrere Zellen auswerten.
    Wenn mehrere Zellen selektiert sind ( das ist etwas anderes als activ),
    dann liegen deren Adressen in einer Excel-Auflistung.
    Auf diese muss man dann zugreifen.
    Theoretisch könnte man ja ganz verteilt im Arbeitsblatt
    viele verschiedene Zellen selektiert haben.
    Darum muss man so vorgehen.
    Du willst ja bestimmt nicht nur die Anzahl an selektierten
    Zellen, sondern auch etwas mit denen anfangen.

    Mein Beispiel sollte dich auch nur auf einen gangbaren Weg bringen :D
    Ne, ein teil aus den selektierten Zeilen müssen auf die anderen Tabellenblätter kopiert werden.

    Wenn ich dich Richtig versteh, muss ich alles aub Blatt X ausgeben, dann die Benötigten Daten wieder in Varibaln ablegen und die anfangs markierten Row´s zählen lassen, damit anschließend das Richtige Tabellenblatt "HR" oder "GHR" öffnet.
    Richtig verstanden?

    Ich hatte die Hoffnung man kann die trotz 2 zeilen irgendwie gezielt ansprechen bzw. ausgeben.

    Noch ne frage. In PHP hätte ich das so versucht:
    Das ich von den markierten Zeilen, nur das in eine Variabel packe, was ich auch brauche.
    Also etwas wie i = ActiveCell.Row(B,E,F)
    Also
    z.b.: ich habe Row 5+6 markiert. Da ich weiß, das ich nur Feld B, E, F
    brauche, packe ich nur die in Variabel? Geht das auch in VB/Excel?

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „michael81“ ()

    Ehrlich gesagt drückst du dich nicht besonders verständlich aus, aber ich denke es wird schon stimmen. ;)

    Das Hauptproblem beim Excelprogrammieren ist meistens, dass man mit allen Fehlern, die User machen
    könnten, auch rechnen muss. Excel ist so universell, dass man einzelne Zellen, ganze Zeilen, ganze Spalten
    verteilte Zellen und mehrere Spalten etc. selektieren kann. Diese Möglichkeiten musst du auch immer bedenken.

    Natürlich kannst du, wenn Zeile 5+6 selektiert sind auch nur bestimmte Zellen aus bestimmten Spalten
    kopieren.
    Ich versuche es noch mal.


    Blatt 1 ist die Startseite. Von dieser sollen je nachdem ob eine oder 2 Zeilen markiert sind, bestimmte Felder kopiert werden.
    Entweder wenn eine Zeile markiert ist, auf das Blatt "HR".
    Wenn aber zwei zeilen markiert sind, aud das Blatt "GHR"

    Ich kenne nur i = ActiveCell.Row. Aber damit bekomme ich es nicht hin, wenn 2 Zeilen markiert sind.

    Wie bekomme ich Excel denn dazu, dass es, je nachdem ob eine oder zwei Zeilen markiert sind bestimmte Felder in variabel zu speichern.
    i = ActiveCell.Row(A,B,F) wird wohl nicht funktionieren. :)