Office: (Office 2010) Mit VBA Zeilen aus markierten Zellbereich ermitteln

Helfe beim Thema Mit VBA Zeilen aus markierten Zellbereich ermitteln in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo, ich möchte die Anfangs- und Endzeile aus einem markierten Zellbereich in Variablen haben. Also z.B A1:A3 markiert -> 1 und 3 oder C15:E280... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Jorge33, 29. Juli 2017.

  1. Mit VBA Zeilen aus markierten Zellbereich ermitteln


    Hallo,

    ich möchte die Anfangs- und Endzeile aus einem markierten Zellbereich in Variablen haben. Also z.B A1:A3 markiert -> 1 und 3 oder C15:E280 markiert die Zahlen 15 und 280. Mit dem Befehl Selection.Adress ist es ja relativ einfach den Zellbereich zu ermitteln. ($C$15:$E$280). Nur die ein- oder mehrstelligen Zahlen aus diesem String zu extrahieren, ist schon eine Herausforderung (jedenfalls für mich). Nachdem ich jetzt einen halben Nachmittag verbracht habe im Internet zu recherchieren, habe ich nicht wirklich etwas brauchbares gefunden. Gibt es da eine elegante Lösung? Am Liebsten wäre mir es natürlich, man könnte die Zahlen direkt aus dem Adressbereich ermitteln, etwa irgendwie so "a = selection.adress.row.low" und "b = selection.adress.row.high", aber so etwas in die Richtung habe ich überhaupt nicht gefunden...

    :)
     
    Jorge33, 29. Juli 2017
    #1
  2. Hallo Jorge,

    stellt sich die Frage: "Wozu braucht man das?"
     
    Klaus-Dieter, 31. Juli 2017
    #2
  3. Hajo_Zi
    Hajo_Zi Erfahrener User
    MsgBox Range("C15:E280").Cells(1).Row & "," & Range("C15:E280").Cells(Range("C15:E280").Count - 1).Row
     
    Hajo_Zi, 31. Juli 2017
    #3
  4. Mit VBA Zeilen aus markierten Zellbereich ermitteln

    Hallo Hajo,

    Du bist der Held des Tages. *Smilie
    Deine kleine Formel habe ich bei mir so angepasst.

    Bereich = ActiveWindow.Selection.Address
    a = Range(Bereich).Cells(1).Row
    b = Range(Bereich).Cells(Range(Bereich).Count).Row

    Nur das -1 habe ich weg gelassen, das hat das Ergebniss verfälscht.

    Besten Dank und noch einen schönen Abend.

    Gruß Jorge
     
    Jorge33, 31. Juli 2017
    #4
  5. Hallo Jorge33,

    was nutzt es, daß Du einen Held des Tages auserkoren hast, dann aber die angebotene Lösung total verunstaltest. Du besitzt einen Range-Bereich in Form von 'Selection', aber Du machst daraus
    - einen String (.Address)
    - wandelst dann diesen String wieder 3x in einen Bereich um
    - um dann die 2 Zeilen-Werte zu bestimmen

    Was für einen Unsinn in der Programmierung!

    Gruß von Luschi
    aus klein-Paris
     
    Luschi, 31. Juli 2017
    #5
  6. Hallo Hr. Luschi,

    Vielen Dank für Ihre Ausführungen, auch wenn ich sie nicht ganz verstehe. Ich schreibe gelegentlich Formblätter für die Firma für die ich arbeite und hin und wieder auch ein paar Makros. VBA Programmierung habe ich nie richtig gelernt, alles was ich weiß, habe ich mir über das Internet selbst beigebracht. Ich versuche auch immer, möglichst alle Probleme durch Recherche im Internet selbst zu lösen, hier im Forum eine Frage zu stellen ist immer mein letzter Ausweg.

    Im aktuellen Fall habe ich ein Formblatt mit drei Spalten erstellt, in das verschiedene Anwender verschiedene Daten einpflegen. Je nach dem um was für Daten es sich handelt, müssen nach der Eingabe verschiedene Zellen verschiedentlich formatiert werden. Ein Fall für ein Makro, das auch ganz gut funktioniert hat. Der Anwender markiert einfach nach der Eingabe der Daten den betreffenden Zellbereich mit der Maus und startet das Makro. Bei den Tests haben wir dann festgestellt, das die Formatierung einer Spalte immer auf die beiden anderen Splaten übertragen werden kann. Gibt also ein Anwender in die Spalte A Daten ein und formatiert die Zellen in Spalte A. können die Spalten B und C genauso formatiert werden. Gibt er andere Daten in Spalte B ein und formatiert sie mit dem Makro, kann wieder die Formatierung auf die Spalten A und C übertragen werden usw.

    Da ich also immer die Spalten A, B und C formatieren muss, blieb mir nur noch die Frage, welche Zeilen mit der Maus vor Ausführung des Makros markiert worden sind. Ist es Zeile 1 bis 3 oder 4 bis 8 usw. Mit
    Bereich = ActiveWindow.Selection.Address
    sehe ich ganz einfach den komplett markierten Bereich, nur die beiden Zeilen aus dem String zu extrahieren war eine unlösbare AUfgabe für mich.
    Und hier hat mir der Hajo mit seiner Lösung super weitergeholfen. Mit
    ZeileLow = Range(Bereich).Cells(1).Row
    ZeileHigh = Range(Bereich).Cells(Range(Bereich).Count).Row
    habe ich die beiden Zeilen und kann nun alle 3 Spalten ansprechen.

    With Range(Cells(ZeileLow, 1), Cells(ZeileHigh, 1))
    With Range(Cells(ZeileLow, 2), Cells(ZeileHigh, 2))
    With Range(Cells(ZeileLow, 3), Cells(ZeileHigh, 3))

    Ich weiß jetzt nicht genau, welche Regeln und Gesetze ich mit dieser Vorgehensweise gebrochen habe und auch wenn ich wegen meiner Programmierweise irgendwann mal in der Excelhölle lande, wurde hier ein schwieriges Porblem für mich einfach und übersichtlich gelöst.
    Besten Dank nochmal hierfür.

    Gruß Jorge
     
    Jorge33, 1. August 2017
    #6
Thema:

Mit VBA Zeilen aus markierten Zellbereich ermitteln

Die Seite wird geladen...
  1. Mit VBA Zeilen aus markierten Zellbereich ermitteln - Similar Threads - VBA Zeilen markierten

  2. VBA in einer Zeile zu lang

    in Microsoft Excel Hilfe
    VBA in einer Zeile zu lang: Moin, mein VBA Code ist für eine Zeile zu lang. Kann mir einer helfen wie ich den auf 2 Zeilen aufteilen Kann? arrSchuhDaten = Array(Range("A6"), Range("F6"), Range("J6"), Range("A7"),...
  3. VBA: Platzhalter ersetzen und evtl. leere Zeile einfügen

    in Microsoft Word Hilfe
    VBA: Platzhalter ersetzen und evtl. leere Zeile einfügen: Hallo zusammen, ich habe eine Word-Vorlage mit Platzhaltern, in die ich mit VBA Daten aus einer Excel-Datei einfüge (in eine Excel-Zeile schreibe ich alle Daten für ein neues Word-Dokument). So...
  4. VBA Auslesen von Strings und erstellen neuer Zeilen in einer Tabelle

    in Microsoft Excel Hilfe
    VBA Auslesen von Strings und erstellen neuer Zeilen in einer Tabelle: Guten Tag zusammen In der 1. Spalte stehen KundenIDs (jeweils 2 Buchstaben), separiert mit einem Komma. Beispielsweise: ag,ok,be,li,ce In der 2. bis 15. Spalte stehen dann diverse Eigenschaften,...
  5. Per VBA Zeilen einfügen und danach in diese Texte kopieren

    in Microsoft Excel Hilfe
    Per VBA Zeilen einfügen und danach in diese Texte kopieren: Hallo zusammen, ich möchte im 1. Schritt via VBA-Code eine bestimmte, variable Anzahl Zeilen (der Wert wird immer im Reiter "Data" in der Zelle S32 ermittelt) in einem anderen Reiter namens...
  6. VBA Code für Zeilen ausblenden einblenden mit JA/Nein

    in Microsoft Excel Hilfe
    VBA Code für Zeilen ausblenden einblenden mit JA/Nein: Hallo, habe eine Exceltabelle, bei der ich bei einer Zelle eine Ja/Nein abfrage mache, wenn in der Zelle Nein steht, dann soll ein bestimmter Zeilenbereich, den ich definieren möchte, ausgeblendet...
  7. Zellen aus Aktiver Zeile kopieren

    in Microsoft Excel Hilfe
    Zellen aus Aktiver Zeile kopieren: Hallo zusammen, im Grunde genommen ist es wohl ganz einfach … ich weiss es aber trotzdem nicht wie es in VBA umsetze. Ich will aus einer „Aktiven Reihe“ (diese wähle ich vorher über einen...
  8. markierte Zeile vergrößern mittels VBA

    in Microsoft Excel Hilfe
    markierte Zeile vergrößern mittels VBA: Hallo zusammen, ich habe mir ein kleines Makro gebastelt, dass immer die gesamte Zeile markiert, in der sich auch die aktuelle Zelle befindet. Hier erst einmal der Code: Code: Private Sub...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden