Verbinden un Zentrieren als Befehl möglich?

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

NightKinghunter 
Fragesteller
 16.10.2018, 15:56

nene ich wollte das in einer Wenn Funktion schreiben.

0
Funfroc  16.10.2018, 16:40
@NightKinghunter

Dann stimme ich in den allgemeinen Tenor... Geht nicht.

Per VBA möglich, per Formel definitiv nicht.

1

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.

NightKinghunter 
Fragesteller
 16.10.2018, 15:57

und wie funktioniert das ?

0
Gaterde  16.10.2018, 16:07
@NightKinghunter

Nein, wie schon erwähnt geht das nicht mit einer Funktion in einer Zelle.

Was möchtest du eigentlich genau erreichen?

0
NightKinghunter 
Fragesteller
 16.10.2018, 16:11
@Gaterde

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

0
NightKinghunter 
Fragesteller
 16.10.2018, 16:12
@Gaterde

Funktioniert leider nicht fehler: Fehler beim Kompilieren Außerhalb einer Prozedur ungültig

0
NightKinghunter 
Fragesteller
 16.10.2018, 16:19
@Gaterde
Ich habe es
Oktober.Range("D5:D11").Merge
Oktober.Range("D5:D11").UnMerge
da meine Tabellen Seite Oktober heißt :D
0
Gaterde  16.10.2018, 16:22
@NightKinghunter

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
0
Oubyi, UserMod Light  16.10.2018, 19:38
@NightKinghunter

:
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!

0
NightKinghunter 
Fragesteller
 17.10.2018, 07:38
@Gaterde

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?

0
NightKinghunter 
Fragesteller
 17.10.2018, 07:54
@NightKinghunter

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

0
NightKinghunter 
Fragesteller
 17.10.2018, 07:56
@Gaterde

Möglich gleichzetig in diesem Marko Es Zentrieren sowie Zentriert ausgerichtet zu formatieren?

1
Gaterde  17.10.2018, 09:38
@NightKinghunter

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
0
NightKinghunter 
Fragesteller
 17.10.2018, 10:30
@Gaterde

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

0
NightKinghunter 
Fragesteller
 17.10.2018, 11:10
@Gaterde

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

0

Nein, ich glaube nicht das du mit Formeln die Formatierung änden kannst.

mit einer wenn funktion nicht aber du kannst es in VBA

Woher ich das weiß:eigene Erfahrung
NightKinghunter 
Fragesteller
 17.10.2018, 07:57

kennst du dich damit aus?

0
M2SSD  17.10.2018, 22:46
@NightKinghunter

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.

0