Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA - Zellen auswählen und zentrieren

VBA - Zellen auswählen und zentrieren
23.04.2015 18:26:01
Anika
Hallo,
ich bin absoluter VBA Anfänger und suche eine Möglichkeit, Zellen nach einem bestimmten Inhalt zu durchsuchen, dann diese Zelle und die daneben zu markieren und über die Auswahl zu zentrieren.
Am besten schon während der Eingabe.
Bsp:
Zelle A1 und A2 sind leer. In Zelle A1 wird Eingabe "**" vorgenommen.
Der Code soll folgendes tun:
Text "**" finden, die entsprechende Zelle und die Zelle rechts daneben (also A1 und A2) markieren und den Inhalt über die Auswahl zentrieren, so dass "**" über A1 und A2 zentriert wird.

Anzeige

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA - Zellen auswählen und zentrieren
23.04.2015 18:49:49
Matthias
Hallo
Wenn A1 und A2 leer sind und in A1 eine Eingabe gemacht wird, warum willst Du dann nochmal danach suchen?
Machs doch gleich nach der Eingabe.
Ich vermute hier mal das soll für alle EingabeZellen so sein.
Ein Bsp.
Code gehört ins Tabellenblatt
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With Union(ActiveCell, ActiveCell.Offset(, 1))
.HorizontalAlignment = xlCenterAcrossSelection
End With
End Sub
Gruß Matthias

Anzeige
AW: VBA - Zellen auswählen und zentrieren
23.04.2015 19:09:19
Anika
Nein. Die Zellen sollen nicht bei jeder beliebigen Eingabe ausgewählt und zentriert werden sondern nur wenn bestimmte Werte eingetragen werden.

AW: VBA - Zellen auswählen und zentrieren
23.04.2015 19:53:59
Matthias
Hallo
Nein. Die Zellen sollen nicht bei jeder beliebigen Eingabe ausgewählt und zentriert werden sondern nur wenn bestimmte Werte eingetragen werden.

Dann bau doch ein If drumherum
Gruß Matthias

Anzeige
AW: VBA - Zellen auswählen und zentrieren
23.04.2015 19:57:53
Anika
Leider beherrsche ich kein vba, wie würde das Aussehen?

AW: VBA - Zellen auswählen und zentrieren
23.04.2015 20:10:47
Anika

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If ActiveCell = "FR"
Then
With Union(ActiveCell, ActiveCell.Offset(, 1))
.HorizontalAlignment = xlCenterAcrossSelection
End With
End If
End Sub
Das funktionert leider nicht. Nehme an, dass man Then und With nicht einfach hintereinander setzen kann?

Anzeige
AW: VBA - Zellen auswählen und zentrieren
23.04.2015 20:26:39
Anika

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If ActiveCell = "FR" Then Range("ActiveCell, ActiveCell.Offset(, 1)").Select
Selection.HorizontalAlignment = xlCenterAcrossSelection
End Sub
Funktioniert leider auch nicht.

If ActiveCell = "FR" Then => sonst OK! Gruß owT
23.04.2015 20:26:42
Luc:-?
:-?

Anzeige
AW: If ActiveCell = "FR" Then => funktioniert nic
23.04.2015 20:34:01
Anika
:(

Außerdem ist hier 'ActiveCell' das 'Target', ...
23.04.2015 20:42:27
Luc:-?
…also eher so, Anika:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Rows.Count > 1 Then Exit Sub
If Target.Cells(1) = "FR" Then
Target.Resize(1, 2).HorizontalAlignment = xlCenterAcrossSelection
End If
End Sub
Gruß, Luc :-?
Besser informiert mit …

Anzeige
AW: Funktioniert, nur eine Kleinigkeit :)
23.04.2015 20:46:00
Anika
Nachdem ich FR eingetragen habe, muss ich noch einmal die Zelle auswählen, damit die Formatierung angewendet wird. Geht es auch, dass direkt nach der Eingabe formatiert wird?

Ja, dazu benötigst du nur ein anderes Ereignis,...
23.04.2015 20:58:03
Luc:-?
…Anika,
nämlich Worksheet_Change! Also nur das Selection aus dem ProzedurNamen löschen, sonst sieht sie genauso aus und sollte auch fktionieren, wenn du "FR" einkopierst. Das dürfen dann aber nur ein oder mehrere Werte einer Zeile sein und der 1. muss ggf das "FR" enthalten. Anderenfalls passiert nichts. Das Ereignis wird erst nach Beenden der Eingabe ausgelöst!
Falls mehrere Zeilen einkopiert wdn sollen, muss die PgmZeile mit dem Exit Sub auskommentiert oder entfernt wdn. Dann muss allerdings auch die 1.Zelle "FR" enthalten, wenn etwas passieren soll.
Luc :-?

Anzeige
SUPER! Problem gelöst.
23.04.2015 21:13:29
Anika
Danke sehr!

Na, prima! Bitte sehr! owT
24.04.2015 02:48:25
Luc:-?
:-?
;

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
Anzeige

Infobox / Tutorial

Zellen in Excel mit VBA zentrieren


Schritt-für-Schritt-Anleitung

Um in Excel Zellen automatisch zu zentrieren, wenn ein bestimmter Wert eingegeben wird, kannst Du den folgenden VBA-Code verwenden. Dieser Code sollte in das entsprechende Tabellenblatt eingefügt werden.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu starten.
  2. Wähle im Projektfenster das Arbeitsblatt aus, in dem Du die Zellen zentrieren möchtest.
  3. Kopiere und füge den folgenden Code in das Codefenster ein:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Cells(1) = "FR" Then
        Target.Resize(1, 2).HorizontalAlignment = xlCenterAcrossSelection
    End If
End Sub
  1. Schließe den VBA-Editor und kehre zu Excel zurück.
  2. Teste den Code, indem Du in eine Zelle "FR" eingibst und sie anschließend mit einer benachbarten Zelle kombinierst.

Mit diesem Code wird der Text in der Zelle und der benachbarten Zelle zentriert, sobald Du "FR" eingibst.


Häufige Fehler und Lösungen

  • Problem: Der Code funktioniert nicht, wenn Du "FR" eingibst.

    • Lösung: Überprüfe, ob der Code im richtigen Arbeitsblatt platziert ist und ob das Ereignis Worksheet_Change korrekt verwendet wird.
  • Problem: Die Zellen werden erst nach erneutem Auswählen zentriert.

    • Lösung: Stelle sicher, dass Du den Worksheet_Change-Ereigniscode verwendest, anstelle von Worksheet_SelectionChange.

Alternative Methoden

Eine weitere Möglichkeit, Zellen in Excel zu zentrieren, ist die Verwendung von Kontrollkästchen. Du kannst ein Kontrollkästchen in eine Zelle einfügen und dann den Text zentrieren. Hier ist, wie Du es machst:

  1. Gehe zu Entwicklertools und klicke auf Einfügen.
  2. Wähle das Kontrollkästchen aus und platziere es in der gewünschten Zelle.
  3. Klicke mit der rechten Maustaste auf das Kontrollkästchen und wähle Steuerelement formatieren.
  4. Stelle die Position auf mittig.

Diese Methode eignet sich besonders, wenn Du interaktive Elemente in Deine Excel-Datei integrieren möchtest.


Praktische Beispiele

Wenn Du eine Tabelle hast, in der Du die Texte in den Zellen A1 und A2 zentrieren möchtest, nachdem Du "FR" in A1 eingegeben hast, könnte das so aussehen:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$A$1" And Target.Value = "FR" Then
        Range("A1:B1").HorizontalAlignment = xlCenterAcrossSelection
    End If
End Sub

In diesem Beispiel wird der Text in A1 und B1 zentriert, wenn "FR" in A1 eingegeben wird.


Tipps für Profis

  • Nutze die Konstante xlCenterAcrossSelection, um Texte über mehrere Zellen zu zentrieren.
  • Verwende den Worksheet_Change-Event, um Eingaben in Echtzeit zu formatieren.
  • Achte darauf, dass der Code nur für Zellen mit bestimmten Inhalten gilt. Möglicherweise möchtest Du zusätzliche If-Bedingungen hinzufügen, um verschiedene Texte zu überprüfen.

FAQ: Häufige Fragen

1. Wie kann ich den Code anpassen, um mehrere Werte zu überprüfen? Du kannst mehrere If-Anweisungen verwenden oder eine Select Case-Anweisung implementieren, um verschiedene Werte zu überprüfen.

2. Funktioniert dieser Code in allen Excel-Versionen? Ja, der Code sollte in allen aktuellen Versionen von Excel funktionieren, die VBA unterstützen. Achte darauf, dass Makros aktiviert sind.

3. Wie zentriere ich Text horizontal und vertikal in einer Zelle? Du kannst beide Ausrichtungen mit HorizontalAlignment und VerticalAlignment kombinieren. Beispiel:

With Target
    .HorizontalAlignment = xlCenter
    .VerticalAlignment = xlCenter
End With

Durch diese Schritte und Hinweise solltest Du in der Lage sein, Zellen in Excel effizient zu zentrieren und dabei VBA effektiv zu nutzen.

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