Verbinden un Zentrieren als Befehl möglich?
Kann ich in einer Wenn funktion als Dann Bedigung sagen das dann die Zellen D5 bis D11 verbunden werden und eine große Zelle ergeben?
4 Antworten
Hallo,
da ich deine Tabelle von der anderen Frage kenne, nehme ich an, du willst das mehrfach machen und suchst einen Short-Cut.
Den gibt es an sich nicht... aber: Wenn du den Befehl Verbinden und Zentrieren einmal ausgeführt hast, kannst du ihn mit STRG + Y erneut abrufen, sofern kein neuer Befehl dazwischen kommt.
Also für D5:D11 einmal auf den Button klicken, anschließend D12:D18 markieren und STRG + Y drücken.
LG, Chris
Dann stimme ich in den allgemeinen Tenor... Geht nicht.
Per VBA möglich, per Formel definitiv nicht.
Mit Excel Funktionen ist das soweit ich weiss nicht möglich, aber mit VBA geht das:
Worksheet.Range("D5:D11").Merge
Worksheet.Range("D5:D11").UnMerge
"Worksheet" mit deinem Tabellen ersetzen.
Visual Basic. Eine Programmiersprache. Am besten machst du es mit einem Makro oder einem Button:
kann ich diesen makro dann in eine wenn funktion einbauen?
Nein, wie schon erwähnt geht das nicht mit einer Funktion in einer Zelle.
Was möchtest du eigentlich genau erreichen?
Ich möchte erreichen das Wenn ein bestimmtes Wort in dem Zellenbereich D5 bis D11 steht, alle Zellen für den Bereich D5 bis D11 verbunden werden
Funktioniert leider nicht fehler: Fehler beim Kompilieren Außerhalb einer Prozedur ungültig
Hast du den "Worksheet" mit deinem Tabellennamen ersetzt?
Ich habe es
Oktober.Range("D5:D11").Merge
Oktober.Range("D5:D11").UnMerge
da meine Tabellen Seite Oktober heißt :D
Hier ein Beispiel des Makros, mit dem Wort test:
Sub Makro1()
Set rngFoundCell = Sheets("Oktober").Range("D5:D11").Find(What:="test")
If rngFoundCell Is Nothing Then
Exit Sub
Else
Oktober.Range("D5:D11").Merge
End If
End Sub
:
Bei all dem muss Dir aber klar sein, dass der gefundene Wert, !!!es sei denn er steht in D5!!! gelöscht wird.
Nur der Wert der linkesten [sic!] Zelle im verbundenen Bereich bleibt erhalten und wird angezeigt!
Jetzt kommt: Laufzeitfehler '424' Objekt erforderlich.
Hab ich das ganze richtig verstanden: Als erstes bestimmst du auf welchem Arbeitsblatt du das suchst dann in welchem bereich dann das Wort test.
Findet er nichts soll er es beenden. Ansonsten soll er es in dem Bereich D5:D11 zusammen fassen?
Danke. Aber aktuell funktioniert es leider nicht ...
Ich habe das problem gerade selbst ständig gelöst..
Sub Makro1()
Set rngFoundCell = Sheets("Oktober").Range("D5:D11").Find(What:="test")
If rngFoundCell Is Nothing Then
Exit Sub
Else
Sheets("Oktober").Range("D5:D11").Merge
End If
End Sub
Möglich gleichzetig in diesem Marko Es Zentrieren sowie Zentriert ausgerichtet zu formatieren?
Dann würde ich es so versuchen:
Sub Makro1()
Sheets("Oktober").Range("D5:D11").Select
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Selection.Merge
End Sub
alles klar bei mir sieht das so aus.. aber kommt Fehler beim Kompikieren: If-Block ohne End If.
Sub Makro1()
Set rngFoundCell = Sheets("Oktober").Range("D5:D11").Find(What:="Test1")
If rngFoundCell Is Nothing Then
Set rngFoundCell = Sheets("Oktober").Range("D5:D11").Find(What:="Test2")
If rngFoundCell Is Nothing Then
Set rngFoundCell = Sheets("Oktober").Range("D5:D11").Find(What:="Test3")
If rngFoundCell Is Nothing Then
Sheets("Oktober").Range("D5:D11").Select
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Selection.Merge
End Sub
Gut einige Fehler habe ich selbst gefunden... aber da ich mehr als ein Wort abfragen möchte. Wie gehe ich das an? wie mein erster anlauf geht leider nicht..
Sub Makro1()
Set rngFoundCell = Sheets("Oktober").Range("D5:D11").Find(What:="test")
If rngFoundCell Is Nothing Then
Exit Sub
Else
Sheets("Oktober").Range("D5:D11").Select
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = True
End With
End If
End Sub
Nein, ich glaube nicht das du mit Formeln die Formatierung änden kannst.
mit einer wenn funktion nicht aber du kannst es in VBA
Bisschen lerns in der lehre
VBA=visual basic for applications
Eigentlich ist es einer der einfachsten programmiersprachen dies gibt da der code nicht noch seperat mittels kompiler übersetzt werden muss.
Du schreibst erstmal ein grundgerüst:
Sub VerbindeZellenD5D11()
'Dann kanndt du im endefekt machen was du willst,in deinem fall
If Worksheet.Range("D5")="wasauchimmer" then Worksheet.Range("D5:D11").Merge
'Zu beachten ist das wenn du auf text abfragen möchtest brauchst du immer ein "" rund herum bei zahlen nicht!
End sub
Das wars schon ;)
Musst halt noch wasauchimmer durch eine zahl (integer/long/double/byte)ersetzen oder text(string)
Dann kannst du die geschriebene sub einfach kopieren.
Falls wiedererwarten fehler auftreten sollten kannst du dir mit F1 die hilfe öffnen und dann einfach nach dem suchen was du wissen willst.
nene ich wollte das in einer Wenn Funktion schreiben.