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

Forumthread: Zellen verbinden, wenn Wort in Zelle eingeben wird

Zellen verbinden, wenn Wort in Zelle eingeben wird
10.12.2017 14:03:59
Korbi
Hallo Community,
ich bin grad dabei, mir einen Arbeitszeitenkalender für 2018 zu erstellen.
In meinem kleinen Unternehmen in dem ich angestellt bin haben wir keine Stempeluhr.
Ich will mir nur das Ganze ein wenig vereinfachen, dass ich immer auf einen Blick habe wie viele Stunden habe ich in dem Monat gearbeitet, wie viel Urlaubstage habe ich noch usw.
Für jeden Monat habe ich ein Arbeitsblatt eröffnet mit den notwendigen Daten.
Ich habe vier Spalten: Arbeitsbeginn, Mittagspausenbeginn, Mittagspausenende und Arbeitsende.
Es gibt auch Tage in denen ich meine Überstunden abbaue oder Urlaub habe.
Dafür habe ich mir ein Dropdown-Menü in der Spalte "C" erstellt mit "Urlaub" und "Freizeitausgleich"
Um das Ganze ein wenig übersichtlicher zu machen, würde ich gerne diese vier Spalten verbinden, falls eines der beiden Wörter "Urlaub" oder "Freizeitausgleich" ausgewählt wird und dieses dann auch zentrieren.
Ist das Irgendwie möglich, dies zu automatisieren?
So sieht im Moment das Arbeitsblatt vom Januar aus.
Userbild
Wäre klasse wenn ihr mir helfen könntet.
Gruß Korbi
Anzeige

17
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Grundsätzliche Frage
10.12.2017 14:20:27
lupo1
Wer ermittelt denn Deine Ansprüche, wenn Du es nicht selbst tust? Und: Wie macht er oder sie das?
Ist es eine Kontrolle dieser Ermittlung oder eine Erstermittlung? Wer glaubt Dir die dann?
AW: Grundsätzliche Frage
10.12.2017 14:29:00
Korbi
Hallo Lupo1,
du meinst, wer kontrolliert die Arbeitsstunden die ich eingetragen habe?
In einem kleinen Unternehmen in dem ich tätig bin, arbeitet man miteinander und es ruht auf Vertrauensbasis. Man würde merken, wenn die jemand zu viele Stunden hat.
Tut das außerdem etwas zu meiner Frage?
Anzeige
Zur Frage tut es insofern etwas, ...
10.12.2017 14:31:57
lupo1
... als dass wir Antworter manchmal solche Infos gern vorher hätten.
Denn sonst hülfen wir hier bei Erstlösungen, deren Bezahlung sich jmd. sparen möchte.
AW: Zur Frage tut es insofern etwas, ...
10.12.2017 15:03:16
Korbi
Also das ist nur für mich eine "kleine Spielerei". Wir schreiben Stundenzettel die unsere Buchhalterin dann irgendwie auswertet. Wie sie das macht, weiß ich nicht.
Anzeige
AW: Grundsätzliche Frage
10.12.2017 14:33:11
Gerd
Hallo,
sehr schön.
Zu deiner Frage:
Einfacher wäre es, die bedingte Formatierung für Spalten C-F zu nutzen.
Gruß Gerd
AW: Grundsätzliche Frage
10.12.2017 15:00:29
Korbi
Hallo Gerd,
an das habe ich auch schon gedacht. Konnte aber noch keinen Durchbruch erzielen.
Ich hab die richtige He­r­an­ge­hens­wei­se noch nicht herausgefunden.
Gruß Korbi
Anzeige
AW: Grundsätzliche Frage
10.12.2017 16:13:37
Hajo_Zi
ich habe schon vieles über bedingte Formatierung gemacht, aber noch nicht über Auswahl ausrichten.
Ich hätte es per VBA gelöst.
starte den VBA Editor (Alt+F11), Bild sollte zweigeteilt sein ansonsten Strg+R, Doppelklick auf Deine Datei, Doppelklick auf Deine Tabelle, Code ins rechte Fenster kopieren, VBA Editor schließen.
Das Makro wird automatisch gestartet.
Der Code wirkt nur in dieser Tabelle.
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 3 Then
With Range(Target, Target(0, 4))
If Not IsNumeric(Target) Then
.HorizontalAlignment = xlCenterAcrossSelection
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
Else
.HorizontalAlignment = xlGeneral
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End If
End With
End If
End Sub

Ich gebe keinen Dank für eine Rückmeldung, da ich durch solche Beiträge nicht meine Beitragszahl erhöhen muss.
Also ich schreibe keine Beiträge mit dem Betreff "Gerne u. Danke für die Rückmeldung. o.w.T."
Rückmeldung ist ja in der Heutigen Zeit nicht üblich und die wenigen die eine Rückmeldung geben,
mögen mir das verzeihen, das kein Danke für eine Rückmeldung kommt.
Beiträge von Werner, Luc, robert und folgende lese ich nicht.
Anzeige
AW: Grundsätzliche Frage
10.12.2017 16:30:38
Korbi
Hallo Hajo,
sehr gut vielen Dank.
Ich kann zwar nichts aus deinem Code rauslesen, aber es funktioniert. Besten Dank! :)
Euch allen einen schönen Sonntag noch.
Gruß Korbi
Das ist doch auch nichts anderes...
10.12.2017 16:40:13
Beverly
Hi,
als der von mir gepostetee Code...


Anzeige
AW: Das ist doch auch nichts anderes...
10.12.2017 16:46:48
Korbi
Hey,
das stimmt.
Bin hab den Code von Karin jetzt ausprobiert.
Und siehe da es funktioniert auch.
Ich wusste nicht, dass ich nach dem einfügen einfach schließen darf.
Ich hab immer auf das "Play"-Zeichen gedrückt.
Einen Unterschied gibt es. Wenn man das "Urlaub" wieder raus löscht, bleibt bei Karin's Code die Zelle ohne Rahmen. Bei Hajo's Code wird die Zelle wieder umrahmt wie die anderen auch.
Vielen Dank euch allen!
Anzeige
AW: Das ist doch auch nichts anderes...
10.12.2017 16:50:21
Hajo_Zi
Du hast einen kleinen Unterschied nicht festgestellt.
Bei mir wird jeder Text zentriert über den Bereich und wird wieder eine Zahl eingegeben wir die Formatierung "Ausrichtung über de Bereich" gelöscht.
Aber gut benutze den Code von Karin.
Gruß Hajo
Anzeige
AW: Das ist doch auch nichts anderes...
10.12.2017 16:57:59
Beverly
Hi,
es war nicht die Rede davon, dass der Zellinhalt wieder gelöscht werden soll...
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Sh.Name  "Deckblatt" And Sh.Name  "__Doal_Metadaten" And _
Sh.Name  "Tabelle1" Then '


Anzeige
Änderungsvorschlag
10.12.2017 17:53:04
Beverly
Hi,
übrigens kann man den Code noch wesentlich vereinfachen:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Sh.Name  "Deckblatt" And Sh.Name  "__Doal_Metadaten" And _
Sh.Name  "Tabelle1" Then '


Anzeige
AW: Zellen verbinden, wenn Wort in Zelle eingeben wird
10.12.2017 14:31:08
Beverly
Hi,
ich würde die Zellen nicht verbinden sondern einfach die Rahmenlinien entfernen und die Schrift über den 4 Zellen zentrieren:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells(1).Column = 3 Then
If Target = "Urlaub" Or Target = "Freizeitausgleich" Then
With Range(Target.Cells(1), Target.Cells(1).Offset(0, 3))
.Borders(xlInsideVertical).LineStyle = xlNone
.HorizontalAlignment = xlCenterAcrossSelection
End With
End If
End If
End Sub

Damit erreichst du denselben optischen Effekt, gehst aber verbundenen Zellen aus dem Weg, denn diese machen nur Ärger.


Anzeige
AW: Zellen verbinden, wenn Wort in Zelle eingeben wird
10.12.2017 16:18:03
Korbi
Hallo Karin,
Danke für die Rückmeldung.
Leider habe ich keinerlei Erfahrung mit Makros.
Was ich bis jetzt geschaft habe ist folgendes: Ich habe die Entwicklertools oben bei den Reitern festgelegt.
Wie muss ich nun fortfahren?
Entwicklertools -> Visual Basic?
Wenn ich auf Visual Basic gehe kommt folgendes Fenster:
Userbild
Muss ich nun auf Tabelle2(Januar) und hier dann unter "Option Explicit" deinen Code eingeben?
Muss ich das dann bei allen Tabellen (Tabelle 3(Februar), Tabelle 4(März), usw.) auch machen?
Entschulidge meine Unfähigkeit, aber ich habe keinerlei Erfahrung mit so einer Programmierung.
Viele Grüße
Korbi
Anzeige
AW: Zellen verbinden, wenn Wort in Zelle eingeben wird
10.12.2017 16:38:40
Beverly
Hi,
ja, genau so verhält es sich vom Prinzip her. Da du jedoch mehrere Tabellenblätter hast, für die der Code gelten soll, musst du den Code nicht in das Codemodul jedes Tabellenblattes schreiben sondern kannst das Wokbook_SheetChange im Codemodul DieseArbeitsmappe verwenden. Dabei musst du allerdings im Code die Tabellen ausschließen, in denen der Code nicht wirken soll:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Sh.Name  "Deckblatt" And Sh.Name  "__Goal_Metadaten" And _
Sh.Name  "Tabelle1" Then '


Anzeige
AW: Zellen verbinden, wenn Wort in Zelle eingeben wird
11.12.2017 10:57:58
Daniel
Hi
geht im Prinzip ganz einfach:
markiere alle Zellen in den Spalten C-F und formatiere sie mit dem Zellenformat Ausrichtung - Horizontal - über Auswahl zentrieren.
sobald jetzt in einer Zeile nur in Spalte C ein Wert steht, wird dieser über alle vier Spalten zentriert dargestellt.
Wenn du alle 4 Zellen in einer Zeile befüllst, erscheint jeder Wert in seiner eigenen Zelle
diese Formatierung kannst du auch nachträglich einfügen.
ist nichts anderes, als das was die schon gezeigten Codes auch machen.
Aber du brauchst kein Makro dafür, weil du auch einfach alle Zellen so formatieren kannst, die Steuerung der Anzeige erfolgt darüber, welche Zellen befüllt sind.
Gruß Daniel
Anzeige
;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Zellen verbinden in Excel, wenn ein Wort eingegeben wird


Schritt-für-Schritt-Anleitung

  1. Entwicklertools aktivieren: Gehe zu den Excel-Optionen und aktiviere die Entwicklertools, falls sie noch nicht sichtbar sind.

  2. VBA-Editor öffnen: Drücke Alt + F11, um den VBA-Editor zu öffnen.

  3. Code einfügen:

    • Doppelklicke auf das gewünschte Tabellenblatt (z.B. "Januar").
    • Füge den folgenden Code in das rechte Fenster ein:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 3 Then
        With Range(Target, Target(0, 4))
            If Target = "Urlaub" Or Target = "Freizeitausgleich" Then
                .HorizontalAlignment = xlCenterAcrossSelection
                .VerticalAlignment = xlBottom
                .Borders(xlInsideVertical).LineStyle = xlNone
            Else
                .HorizontalAlignment = xlGeneral
                .Borders.LineStyle = xlContinuous
            End If
        End With
    End If
End Sub
  1. VBA-Editor schließen: Schließe den VBA-Editor und kehre zu deinem Arbeitsblatt zurück.

  2. Testen: Gebe in die Zelle der Spalte C entweder "Urlaub" oder "Freizeitausgleich" ein und beobachte, wie die Zellen C bis F automatisch zentriert werden.


Häufige Fehler und Lösungen

  • Excel zellen verbinden grau hinterlegt: Stelle sicher, dass die Zellen nicht bereits verbunden sind. Verbundene Zellen können in der Regel nicht mehr getrennt werden, ohne den Inhalt zu verlieren.

  • Zellen lassen sich nicht verbinden: Überprüfe, ob die Zellen im Arbeitsblatt geschützt sind oder ob Du in einer Excel-Tabelle arbeitest, in der das Verbinden von Zellen eingeschränkt ist.

  • Excel tabelle zellen verbinden nicht möglich: Achte darauf, dass Du nicht in einer Tabelle arbeitest, die Einschränkungen für das Verbinden von Zellen hat. In solchen Fällen kann die bedingte Formatierung eine bessere Lösung sein.


Alternative Methoden

  • Excel Text zentrieren ohne Zellen verbinden: Anstatt Zellen zu verbinden, kannst Du die Option "Über Auswahl zentrieren" verwenden. Markiere die Zellen C bis F, gehe zu "Ausrichtung" und wähle diese Option aus.

  • Shortcut Zellen verbinden: Nutze Alt + H, dann M, gefolgt von M, um Zellen schnell zu verbinden, wenn Du das verbundene Format benötigst.


Praktische Beispiele

  • Beispiel 1: Wenn Du in die Zelle C2 "Urlaub" eingibst, zentriert der VBA-Code den Text über die Zellen C2 bis F2.

  • Beispiel 2: Wenn Du mehrere Zellen befüllst, z.B. C2 mit "Urlaub" und D2 mit "5 Tage", bleibt die zentrierte Darstellung in C2 erhalten, während D2 seine eigene Zelle behält.


Tipps für Profis

  • Verwende die bedingte Formatierung: Für eine noch flexiblere Handhabung der Anzeige kannst Du die bedingte Formatierung nutzen, um bei bestimmten Eingaben die Schriftfarbe oder den Hintergrund zu ändern.

  • Einfache Fehlerbehebung: Wenn der Code nicht funktioniert, überprüfe die Zellen, ob sie korrekt formatiert sind, und ob Du den Code im richtigen Modul eingefügt hast.


FAQ: Häufige Fragen

1. Warum kann ich die Zellen nicht verbinden?
Das kann daran liegen, dass Du in einer Excel-Tabelle arbeitest oder die Zellen durch den Blattschutz eingeschränkt sind.

2. Was ist ein anderes Wort für Urlaub?
Ein häufig verwendetes anderes Wort für Urlaub ist "Freizeitausgleich".

3. Wie kann ich Texte zentrieren, ohne die Zellen zu verbinden?
Nutze das Format "Horizontal - über Auswahl zentrieren", um den gewünschten Effekt zu erzielen, ohne die Zellen physisch zu verbinden.

4. Wie funktioniert der VBA-Code genau?
Der VBA-Code überwacht Änderungen in der Spalte C und zentriert den Text über die vier Zellen, wenn "Urlaub" oder "Freizeitausgleich" eingegeben wird. Wenn andere Werte eingegeben werden, wird die Standardformatierung wiederhergestellt.

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