Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Columns(ActiveCell.Column).Select

Forumthread: Columns(ActiveCell.Column).Select

Columns(ActiveCell.Column).Select
Karsten
Hallo,
läßt sich u.s. Befehl so umschreiben, dass nur die Breite der akt. Spalte angepasst wird. Im Moment wird dazu immer ein Zoomvorgang ausgelöst (120%). Ich hätte möglichst die angepasste Spalte und Zoomgrösse gleichbleibend 150.
Columns(ActiveCell.Column).Select
ActiveWindow.Zoom = True
Danke für eure Hilfe.
Gruß
Karsten
Anzeige
AW: Columns(ActiveCell.Column).Select
11.11.2009 10:26:49
ede
Hallo,
die optimale Spaltenbreite erreicht Du so, wenn es Dir helfen sollte.
Columns(ActiveCell.Column).AutoFit
Gruss
AW: Columns(ActiveCell.Column).Select
11.11.2009 10:44:41
Karsten
Hallo ede,
Danke, aber ich meine es anders. AutoFit heist, dass sich die Spaltenbreite des zelleninhaltes anpasst.
Ich möchte, dass sich die Spaltenbreite des Sichtbereiches des Monitores anpasst, auch, wenn es nicht dem Zellinhaltes entspricht.
Gruß
Karsten
Anzeige
AW: Columns(ActiveCell.Column).Select
11.11.2009 11:16:44
Björn
Hallo,
ich würde mal behaupten, da gibt es keinen direkten Befehl dazu.
Das musst du dir umständlich zusammenbauen.
Du musst Dir mal genau überlegen, wie du das von Hand machen würdest, also wirklich Schritt für Schritt.
Du musst als erstes prüfen, ob die Spalte vergrößert oder verkleinert werden muss.
Dann müsstest du irgendwie ausmessen (ausrechnen), um wie viel die Größe geändert werden muss.
Dann die neue Größe der Spalte zuweisen und dann bei jeder Änderung irgendeiner Spalte / Zoomfaktor das ganze wieder von vorn.
Warum soll das denn überhaupt per Makro so gelöst werden? Warum stelltst du das Seitenformat nicht so ein, wie es sein soll und sperrst es dann?
Ich verstehe Deinen Gedanken nicht und sehe keinen Sinn darin, eine Spalte per Makro dem Sichtbereich anpassen.
Gruß
Björn
Anzeige
AW: Columns(ActiveCell.Column).Select
11.11.2009 11:28:28
Karsten
Hallo Björn,
ich arbeite mit der gleichen Datei auf verschiedenen Rechnern. Mal PC (großer Bildschirm), mal Minilaptop. Sieitenverhältnisse sind da immer etwas anders.
z.B.
Private Sub Worksheet_Activate()
Range("A:O").Select
ActiveWindow.Zoom = True
End Sub
hat sich da bestens bewährt. Ich dachte, dass es für eine Spalte ebenfalls möglich wäre.
Gruß
Karsten
Anzeige
noch ein Versuch ...
11.11.2009 23:14:41
Matthias
Hallo
meinst Du vielleicht so?
Sub Karsten()
Dim spalte As Long
spalte = ActiveCell.Column
Columns(spalte).Select
ActiveWindow.Zoom = True
End Sub
Gruß Matthias
Columns(ActiveCell.Column).AutoFit ?
11.11.2009 10:27:06
Matthias
Hallo
Columns(ActiveCell.Column).AutoFit
ActiveWindow.Zoom = 150
Gruß Matthias
Anzeige
AW: Columns(ActiveCell.Column).AutoFit ?
11.11.2009 10:45:06
Karsten
Hallo Mattias,
Danke, aber ich meine es anders. AutoFit heist, dass sich die Spaltenbreite des zelleninhaltes anpasst.
Ich möchte, dass sich die Spaltenbreite des Sichtbereiches des Monitores anpasst, auch, wenn es nicht dem Zellinhaltes entspricht.
Gruß
Karsten
Sorry, Ich weiß nicht was Du willst ... oT
11.11.2009 11:08:40
Matthias
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Spaltenbreite anpassen und Zoom in Excel VBA steuern


Schritt-für-Schritt-Anleitung

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den Editor zu öffnen.

  2. Füge ein Modul hinzu: Klicke mit der rechten Maustaste im Projektfenster auf deine Arbeitsmappe und wähle Einfügen > Modul.

  3. Füge den folgenden Code ein:

    Sub AdjustColumnWidthAndZoom()
       Dim activeCol As Long
       activeCol = ActiveCell.Column ' Aktuelle Spalte ermitteln
       Columns(activeCol).Select ' Spalte auswählen
       ActiveWindow.Zoom = 150 ' Zoom auf 150% einstellen
    End Sub
  4. Führe das Makro aus: Schließe den VBA-Editor und gehe zurück zu Excel. Drücke ALT + F8, wähle AdjustColumnWidthAndZoom und klicke auf Ausführen.


Häufige Fehler und Lösungen

  • Fehler: "Objektvariable oder With-Blockvariable nicht festgelegt."

    • Lösung: Stelle sicher, dass eine Zelle aktiv ist, bevor das Makro ausgeführt wird. Sonst kann ActiveCell nicht ermittelt werden.
  • Fehler: Zoom wird nicht korrekt angewendet.

    • Lösung: Überprüfe die Zoom-Einstellungen deines Excel-Fensters. Manchmal können diese durch andere Makros oder Einstellungen beeinflusst werden.

Alternative Methoden

Eine andere Möglichkeit, die Spaltenbreite und den Zoom über VBA zu steuern, könnte über die Verwendung von Cells anstelle von ActiveCell erfolgen. Damit kannst du gezielt eine bestimmte Spalte ansteuern:

Sub AdjustSpecificColumnWidthAndZoom()
    Columns(2).Select ' Wähle die zweite Spalte
    ActiveWindow.Zoom = 150 ' Setze den Zoom auf 150%
End Sub

Praktische Beispiele

  • Beispiel 1: Automatische Anpassung der Breite basierend auf dem Zellinhalt und gleichzeitige Zoom-Einstellung:

    Sub FitColumnAndZoom()
       Dim activeCol As Long
       activeCol = ActiveCell.Column
       Columns(activeCol).AutoFit ' Spaltenbreite an Zellinhalt anpassen
       ActiveWindow.Zoom = 150 ' Zoom auf 150% einstellen
    End Sub
  • Beispiel 2: Anpassung der Breite einer spezifischen Spalte, ohne den Inhalt zu berücksichtigen:

    Sub SetColumnWidth()
       Dim activeCol As Long
       activeCol = ActiveCell.Column
       Columns(activeCol).ColumnWidth = 20 ' Setze die Spaltenbreite auf 20
       ActiveWindow.Zoom = 150 ' Zoom auf 150% einstellen
    End Sub

Tipps für Profis

  • Verwende With-Anweisungen: Dies kann den Code sauberer und effizienter machen, besonders wenn du mehrere Eigenschaften eines Objekts ändern möchtest.

  • Debugging: Nutze Debug.Print innerhalb deiner Makros, um Werte zu überprüfen, bevor du sie anwendest. Das kann helfen, Fehler zu identifizieren.

  • Benutzerdefinierte Funktionen: Erstelle eigene Funktionen, um häufige Aufgaben zu automatisieren. Beispielsweise könntest du eine Funktion schreiben, die den Zoom basierend auf der Bildschirmauflösung anpasst.


FAQ: Häufige Fragen

1. Wie kann ich das Makro für mehrere Spalten gleichzeitig anwenden? Du kannst eine Schleife über die gewünschten Spalten einfügen und die Anpassungen in jeder Iteration vornehmen.

2. Funktioniert dieser Code auch in Excel Online? Leider nicht. VBA ist nur in der Desktop-Version von Excel verfügbar.

3. Was passiert, wenn ich eine andere Zelle auswähle? Der Code passt die Einstellungen immer basierend auf der aktuell aktiven Zelle an. Stelle sicher, dass die gewünschte Zelle aktiv ist, bevor du das Makro ausführst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige