Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1596to1600
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

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

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?
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.
Anzeige
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.
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
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...


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
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 '


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

307 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige