online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon Biene84 vom 22.07.2020, 07:35 Options

Mehrere Zellen markieren und zusammenführen?

Guten Morgen,

ich schlage mich mal wieder mit Excel rum, es fehlt wieder mal eine grundlegende Funktion die eigentlich dabei sein sollte.

Ich möchte eine unbekannte und unbegrenzte Anzahl von Zellen markieren und zusammenfügen. Einfach alle markieren und das Ergebnis der Zusammenführung soll in de zuerst markierten Zelle stehen.

Im Prinzip geht das ja mit diesem schönen kleinen Button, aber nur wenn die Zellen leer sind. Oder es wird alles mit der ersten Zelle überschrieben. Ich möchte aber, dass der Text zusammengefügt wird.

Mit dem Befehl VERKETTEN möchte ich es auch nicht machen da dieser auch zu doof ist (man muss jede Zelle einzeln anklicken und kann sie nicht einfach alle markieren). Bei 100 Zellen macht das keinen Spaß.

Leider bin ich eine absolute VBA-Null und kann mir das nicht selbst schreiben. Hat jemand eine Idee oder gar eine Lösung parat?

Schönen Gruß

Biene


Antwort schreiben

Antwort 1 von hallo666 vom 22.07.2020, 09:02 Options

Vielleicht so.

=C3&" "&D3&" "&E3

Antwort 2 von coros vom 22.07.2020, 09:38 Options

Hallo Biene,

versuche mal nachfolgendes Makro. Das sollte das machen, was Du Dir vorgestellt hast.

Kopiere das Makro in ein StandardModul und starte es z.B. über eine Befehlsschaltfläche
Teste das Makro aber bitte in einer Testdatei und nicht gleich in Deiner Originaldatei.

Option Explicit

Sub Summe_Selection()
Dim iRowStart As Integer
Dim iRowEnd As Integer
Dim iRowLen As Integer
Dim iColStart As Integer
Dim iColEnd As Integer
Dim varSumme As Variant
Dim iRow As Integer
Dim iCol As Integer
iRowStart = Range(Selection.Address).Row
iRowEnd = Range(Selection.Address).Row + Selection.Rows.Count - 1
iColStart = Range(Selection.Address).Column
iColEnd = Range(Selection.Address).Column + Selection.Columns.Count - 1
For iRow = iRowStart To iRowEnd
    For iCol = iColStart To iColEnd
        If IsNumeric(Cells(iRow, iCol)) Then
        varSumme = varSumme + Cells(iRow, iCol)
        End If
    Next
Next
Cells(iRowStart, iColStart) = varSumme
End Sub


Ich hoffe, Du meintest das so.

Solltest Du nicht wissen, wie Du den Code in Deine Datei bekommst, dann schau mal auf meiner HP in der Rubrik Anleitungen und dort dann in der Anleitungsnummer 3 nach. Dort stelle ich dazu eine bebilderte Anleitung zur Verfügung, die Dir sicherlich helfen wird.

Bei Fragen melde Dich.

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 3 von meinTipp vom 22.07.2020, 11:01 Options

Hallo Biene,
eine Alternative zu Olivers Vorschlag.
Diesen Code unter das Tabellenblatt einfügen (Rechtsklick auf den Reiter des Tabellenblattes --> Code anzeigen).
Option Explicit

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Count = 1 Then strZelle1 = Target.Address
End Sub

Diesen Code in ein normales Modul (z.B. Modul1).
Option Explicit
Public strZelle1 As String
'
Sub selektierte_Zellen_Zusammenfügen()
Dim rg As Range
Dim strZusammen As String
If strZelle1 = "" Then
    MsgBox "Zieladresse ist nicht bekannt!"
    Exit Sub
End If
strZusammen = ""
'Zusammenfügen mit "," getrennt
For Each rg In Selection
    If strZusammen = "" Then
        strZusammen = rg.Value
    Else
        strZusammen = strZusammen & "," & rg.Value
    End If
Next rg
Range(strZelle1).Value = strZusammen
End Sub

Wenn du alle Zellen markiert hast so führe selektierte_Zellen_Zusammenfügen() aus.
Du kannst dem Makro ja eine Tastenkombination zuweisen oder über einen Button ansprechen.
Die Reihenfolge des Textes richtet sich aber nicht nach der Reihenfolge der ausgewähten Zellen!
Sie richtet sich nach der Position auf dem Tabellenblatt. Ansonsten wird es wesentlich aufwendiger.

@Oliver
In der Frage stand doch Text zusammenfügen und nicht Summe bilden. Außerdem stand da nichts von einem zusammenhängenden Bereich. Deshalb meine Alternative.

Gruss Rolf

Antwort 4 von Biene84 vom 22.07.2020, 12:25 Options

Hallo Oliver,

danke für die schnelle Rückmeldung. Aber leider hat Rolf recht, es geht um Texte und nicht um Summen.

Schönen Gruß

Sabine

Antwort 5 von Biene84 vom 22.07.2020, 12:27 Options

Hallo Rolf,

das ist glaube ich exakt das was ich suche. Ich habe deine Anleitung befolgt und den einen Code in ein Modul kopiert und den anderen als ein Objekt der Tabelle.

Wenn ich das Makro abspielen möchte kommt aber sofort die Fehlermeldung:

Fehler beim Kompilieren
Variable nicht definiert.

Schönen Gruß

Sabine

Antwort 6 von Biene84 vom 22.07.2020, 12:34 Options

OK, hab's! Ich habe es versehentlich in ein Modul einer anderen Datei geschrieben. Jetzt kann ich es abspielen. Allerdings sagt er, dass die Zieladresse nicht bekannt sei.

Antwort 7 von meinTipp vom 22.07.2020, 12:48 Options

Hallo Sabine,
du musst die Zielzelle erst einmal einzeln anwählen. Dann kannst du den Rest markieren.
Hier
If Target.Count = 1 Then strZelle1 = Target.Address
wird die Zielzelle nur gespeichert, wenn eine einzelne Zelle gewählt wurde. Das ist wegen deiner Forderung
Zitat:
soll in de zuerst markierten Zelle stehen

so gelöst.
Ansonsten ersetze
If strZelle1 = "" Then
    MsgBox "Zieladresse ist nicht bekannt!"
    Exit Sub
End If

einfach durch
If strZelle1 = "" Then
    strZell1=ActiveCell.Address
End If


Gruss Rolf

Antwort 8 von Biene84 vom 22.07.2020, 13:04 Options

PERFEKT !!! DANKE!!!

SCHMATZ

Ähnliche Themen

Zellen formatieren ( Zellen verbinden )
manu661  16.02.2007 - 201 Hits - 3 Antworten

Zeichen in Zellen zählen und ggf. Zellen löschen
Toni165  28.03.2007 - 106 Hits - 2 Antworten

Zellen markieren, wenn Inhalt mit Datum übereinstimmt?
mcscool1988  11.11.2007 - 83 Hits - 1 Antwort

Zellen vergleichen und bei Abweichungen markieren
Balthasar01  15.01.2008 - 21 Hits - 1 Antwort

2 Zellen zusammenführen und dabei führende Nullen in der 2. Zelle einfügen
Computer-Werner  17.03.2008 - 82 Hits - 3 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Mon Jan 26 07:32:25 2026