Office: markierte Zeile vergrößern mittels VBA

Helfe beim Thema markierte Zeile vergrößern mittels VBA in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo zusammen, ich habe mir ein kleines Makro gebastelt, dass immer die gesamte Zeile markiert, in der sich auch die aktuelle Zelle befindet. Hier... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Zorro217, 24. Februar 2009.

  1. 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:
    Ich möchte es nun aber erreichen, dass Excel mir sobald ich eine andere Zelle anklicke in der ersteren Zeile wieder den Ursprung herstellt. Excel soll dann also die Zeilenhöhe von der ersten Zeile wieder zurücksetzen. Außerdem möchte ich gerne auch die Schrift der gesamten markierten Zeile vergrößern.

    Das Ganze dient eigentlich nur dazu, dass dem Anwender einer ziemlich komplexen Datei immer die Zeile, in der er eine Zelle markiert hat, auch größer erscheint. Wahrscheinlich geht das auch irgendwie mittels Zoom, oder?! Nur leider bekomme ich das ohne Eure Hilfe wohl nicht hin.

    Viele Grüße

    Zorro217

    :)
     
    Zorro217, 24. Februar 2009
    #1
  2. Hallo Zorro217,

    folgende Makros kommen in das Modul des betreffenden Tabellenblattes. Ich bin von einer einheitlichen Zeilenhöhe und Schriftgröße ausgegangen. Ansonsten müsste das Makro noch dahingehend erweitert werden, dass er sich die Originaldaten für das spätere Zurücksetzen in zwei weiteren Variablen merkt.

    Code:
     
  3. Hallo Ingolf,

    wie immer konntest Du mir weiter helfen. *Smilie Vielen Dank! Ich habe das jetzt auf meine Datei umgestellt und angepasst. Ich bin zunächst einmal von einer einheitlichen Zeilen- und Schrifthöhe ausgegangen, damit ich das überhaupt irgendwie zum Laufen bekomme. In der Tat sind in der Datei allerdings verschiedene Zeilenhöhen und Schriftgrößen vorhanden. Ist die Anpassung hierfür sehr aufwendig? Ich kann es nämlich leider nicht, ansonsten nutze ich einfach so den Code und lege alles einheitlich fest. Meine bestehenden Foramtierungen bleiben ansonsten alle gleich, das ist schon mal super so und soll auch so bleiben!

    Viele Grüße

    Zorro217
     
    Zorro217, 25. Februar 2009
    #3
  4. markierte Zeile vergrößern mittels VBA

    Hallo Zorro217,

    folgende einfache Erweiterung setzt immer noch voraus, dass innerhalb einer Zeile alle Zellen dieselbe Schriftgröße haben. Sollte auch das nicht der Fall sein, müsstest du die Schriftgrößen der einzelnen Zellen einzeln in einer Schleife in ein Datenfeld einlesen bzw. daraus wiederherstellen.

    Code:
     
  5. Hallo Ingolf,

    ich habe das nun bei mir eingefügt, allerdings funktioniert es nicht. Excel meckert immer im "Worksheet_SelectionChange"-Makro direkt die erste Zeile an. Was habe ich falsch gemacht? Ansonsten klingt das eigentlich ganz logisch, soweit ich das nachvollziehen kann. *tongue.gif*

    Gruß Zorro217
     
    Zorro217, 25. Februar 2009
    #5
  6. Hallo Zorro217,

    kleiner Tippfehler, sorry. Im Worksheet_Activate-Ereignis steht inthoehe statt intZHoehe.

    Gruß Ingolf
     
  7. Stimmt, sorry, das hatte ich schon gesehen und vergessen zu sagen. Aber nichts destro trotz markiert Excel mir oben genannte Stelle im VBA-Code...
     
    Zorro217, 25. Februar 2009
    #7
  8. markierte Zeile vergrößern mittels VBA

    hmmmm .. ziemlich nette idee diese lupenfunktion!!!! kompliment an ingGi .. klasse ansatz

    hab mir da mal was für meine sammlung zusammengecoded. vielleicht interessiert's euch ja. das ganze funktioniert auch mit multiselektionen, also mehrere zellen gleichzeitig markiert

    Const DeltaRowHght = 8
    Const DeltaFontSize = 3

    Dim LastCell As Range

    Private Sub magnifyRow(RefCell As Range, Mag As Boolean)
    With RefCell.EntireRow
    If Mag Then
    .RowHeight = RefCell.RowHeight + DeltaRowHght
    .Font.Size = RefCell.Font.Size + DeltaFontSize
    Else
    .RowHeight = RefCell.RowHeight - DeltaRowHght
    .Font.Size = RefCell.Font.Size - DeltaFontSize
    End If
    End With
    End Sub

    Private Sub Worksheet_Activate()
    magnifyRow ActiveCell, True
    Set LastCell = ActiveCell
    End Sub

    Private Sub Worksheet_Deactivate()
    magnifyRow LastCell, False
    End Sub

    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    magnifyRow LastCell, False
    magnifyRow ActiveCell, True
    Set LastCell = ActiveCell
    End Sub
     
    driemer, 26. Februar 2009
    #8
  9. Hallo Zorro217,

    das Problem tritt immer dann auf, wenn die Variable rngVorige nicht festgelegt ist. Das ist z.B. der Fall, wenn beim Öffnen der Datei das betreffende Tabellenblatt bereits aktiv ist, da hierbei das Activate-Ereignis nicht ausgelöst wird. Also musst du ein wenig umbauen. Die Variablendeklarationen müssen in ein allgemeines Modul (Menü Einfügen | Modul). Im Modul des Tabellenblattes müssen die Deklarationen dann natürlich gelöscht werden:

    Code:
    Hier muss der Tabellenblattname eventuell angepasst werden.

    Gruß Ingolf
     
    Zuletzt von einem Moderator bearbeitet: 12. Januar 2021
  10. *hands Jaaaaaaaaaa, super. Genau so habe ich mir das vorgestellt, vielen Dank! Das läuft astrein, mal sehen, wie lange das so hält. Aber eigentlich können die übrigen Nutzer der Tabelle ja nicht viel kaputt machen, sofern sie nicht in den Makro-Code gehen...

    Die Idee von Driemer werde ich auch noch testen. Aber da komme ich heute nicht mehr zu. Auch Dir vielen Dank für Deine Bemühungen!
     
    Zorro217, 26. Februar 2009
    #10
  11. Da bin ich noch mal. Ein kleines Problem habe ich nun doch noch. Ich möchte in der besagten "Tabelle2" Zellen einfügen, die ich zuvor auf einem anderen Tabellenblatt ("Tabelle3") kopiert habe. Aber sobald ich wieder auf Tabelle2 wechsel, ist der Befehl "kopierte Zellen einfügen" nicht mehr da und ich kann nur eine Leerzeile einfügen... Und ich habe gerade erfahren, dass diese Kopierfunktion auf jeden Fall funktionieren müßte.

    Nun habe ich mir folgende Vorgehensweise überlegt:
    1.) man kopiert die gewünschten Zeilen aus Tabelle3
    2.) über einen Button auf Tabelle3 könnte man dann ja sämtliche Makros ausstellen
    3.) schließlich auf Tabelle2 wechseln und an gewünschter Stelle die kopierten Zeilen einfügen.
    Sobald man dann wieder die Tabelle2 verlässt, werden die Makros aktivert.

    Vielleicht geht es ja auch anders und einfacher? *eek.gif*

    Gruß Zorro217
     
    Zorro217, 26. Februar 2009
    #11
  12. Hallo Zorro217,

    füge dafür auf Tabelle3 zwei CommandButtons aus der Symbolleiste Steuerelemente-Toolbox ein. Einen zum Ausschalten und einen zum Einschalten.

    Ausschalten geht mit: Application.EnableEvents = False

    Einschalten geht mit: Application.EnableEvents = True

    Damit werden die Makros nicht komplett abgeschaltet, aber Excel reagiert nicht mehr auf Ereignisse. Daher brauchst du auch zum wieder einschalten einen Button. Automatisches Einschalten beim Verlassen des Tabellenblattes geht bei abgeschalteten Ereignissen nämlich auch nicht.

    Aber Vorsicht: Das Abschalten gilt für die gesamte Excelinstanz, nicht nur für die gewünschte Arbeitsmappe. Wenn du also das wiedereinschalten vergisst, reagiert Excel auch in anderen Arbeitsmappen nicht mehr auf Ereignisse, auch wenn die Arbeitsmappe mit den Makros schon nicht mehr geladen ist. Erst wenn Excel beendet und neu gestartet wird, sind die Ereignisse automatisch wieder eingeschaltet.

    Gruß Ingolf
     
  13. markierte Zeile vergrößern mittels VBA

    Hallo Ingolf,

    das habe ich nun soweit eingerichtet und es funktioniert super! Habe ich das so richtig verstanden:
    wenn ich die Makros abschalte via Knopf1 und vergesse, sie wieder anzuschalten, gilt das für alle offenen Excel-Anwendungen auf meinem PC, oder? Auch wenn ich diese Datei jetzt zu machen (ohne Knopf2 zu drücken), funktionieren aber alle Excel-Anwendungen wieder, sobald ich sie neu aufgerufen habe? Sprich: es geht eigentlich "nichts verloren", sobald man aus der Datei rausgeht (mit oder ohne Speichern) und diese Datei oder dann eine andere (in der aus Versehen auch alle Makros ausgeschaltet wurden) wieder aufruft, oder?

    Nochmals vielen Dank für Deine Bemühungen! Das ist so eine super Lösung! Genau so sollte es sein! *grins

    Übrigens habe ich festgestellt, dass ich den Fehler mit der nicht festgelegten Variable rngVorige beim Öffnen ja auch ganz einfach umgehen kann, indem ich mittels Code:
    direkt das gewünschte Tabellenblatt öffne. Zumindest funzt das bislang so ganz gut.

    Viele Grüße Zorro217
     
    Zorro217, 26. Februar 2009
    #13
  14. Hallöchen Leute,

    super Funktion, wie müsste denn der Code aussehen,
    wenn nur die markierten Zellen vergrößert werden sollen?

    Oder ist das jetzt zu umständlich?

    LG Robie
     
  15. Hallo Zorro217,

    wenn du Excel mehrfach gestartet hast, hat das Abschalten keine Auswirkungen auf die anderen gestarteten Excelinstanzen. Nur in der Excelinstanz, in der das Makro läuft, wirkt sich das Abschalten aus. Hier aber auf alle Arbeitsmappen. Wenn du Excel komplett schließt und neu startest ist auf jeden Fall wieder alles im Normalzustand, d.h. die Ereignisse sind wieder eingeschaltet. Das Problem wirkt sich also nur aus, wenn du das Einschalten vergisst, Excel erstmal weiter laufen lässt und später Makros in anderen Arbeitsmappen laufen lässt, die über Ereignisse funktionieren. Wenn du dann nicht mehr dran denkst, dass die Ereignisse abgeschaltet sind, laufen diese Makros nicht und du weißt eventuell einfach nicht warum.

    Deine Lösung mit der Select-Anweisung funktioniert leider nur zufällig. Und zwar immer dann, wenn es auch ohne die Anweisung funktionieren würde. Wenn nämlich beim Öffnen der Arbeitsmappe das betreffende Arbeitsblatt zufällig schon das aktive ist, dann wird das Activate-Ereignis nicht ausgelöst, auch nicht durch die Select-Anweisung. Dadurch wird die Variable rngVorige nicht initialisiert. Genau das habe ich jetzt in dem Workbook_Open-Ereignismakro gemacht.


    Hallo Robie,

    dafür müsste es ausreichen, überall das .EntireRow zu löschen (inklusive dem Punkt davor!).

    Gruß Ingolf
     
Thema:

markierte Zeile vergrößern mittels VBA

Die Seite wird geladen...
  1. markierte Zeile vergrößern mittels VBA - Similar Threads - markierte Zeile vergrößern

  2. Mit VBA Zeilen aus markierten Zellbereich ermitteln

    in Microsoft Excel Hilfe
    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...
  3. bestimmte Zellen von markierten Zeilen in anderes Tabelleblatt kopieren

    in Microsoft Excel Hilfe
    bestimmte Zellen von markierten Zeilen in anderes Tabelleblatt kopieren: Hallo Zusammen, ich will bestimmte Zellen von markierten Zeilen in ein anderes Tabellenblatt kopieren. Z.b. Zeile 10 und 15 ist markiert und hier sollen die Spalten A und C kopiert werden. Ich...
  4. ganze Zeile markiert wenn Zelle in Zeile ausgewählt

    in Microsoft Excel Hilfe
    ganze Zeile markiert wenn Zelle in Zeile ausgewählt: Hallo Ihr alle, folgende Frage: Wenn ich mit Excel eine Zeile markiere, wird diese ja als Auswahl hervorgehoben (Rahmen, farblich hervorgehoben) um anzuzeigen, dass ich die gesamte Zeile...
  5. Werte aus markierter Zeile und Spalte zurückgeben

    in Microsoft Excel Hilfe
    Werte aus markierter Zeile und Spalte zurückgeben: Hallo zusammen, ich habe folgendes Problem, welches ich leider nicht gelöst bekomme: in einem Tabellenblatt ist z.B. die Zelle M10 markiert. Nun soll Excel eine bestimmte Zelle aus der...
  6. Eine mit x markierte Zelle soll bestimmte Spalten aus der gleichen Zeile kopieren

    in Microsoft Excel Hilfe
    Eine mit x markierte Zelle soll bestimmte Spalten aus der gleichen Zeile kopieren: Hallo liebe Forum-Mitglieder! Ich habe folgendes Problem, was ich euch schildern möchte: Ich möchte eine mit "x" markierte Zelle, dass es genau diese Zeile nimmt und ganz bestimmt spalten in...
  7. sichtbare markierte zellen in andere spalte aber gleiche zeile kopieren

    in Microsoft Excel Hilfe
    sichtbare markierte zellen in andere spalte aber gleiche zeile kopieren: hallo ich hab da ein Problem und brauche Hilfe. man Problem besteht im grunde aus mehreren Teilen. 1. ich habe mehrere Spalten, wo ich filter gesetzt habe. je nachdem welchen filter ich...
  8. Erste Zelle , der markierten Zeile (ActiveCell.Adress)

    in Microsoft Excel Hilfe
    Erste Zelle , der markierten Zeile (ActiveCell.Adress): Hallo ! Wie kriege ich die erste Zelle in der aktuell markierten Zeile, die Leer ist. Danach soll sich eine Inputbox öffnen, die dann die Werte für diese Zelle übernimmt. Ich dachte an so was...
  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