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

Forumthread: Zellen dynamisch verbinden

Zellen dynamisch verbinden
28.09.2006 10:55:23
FloGo
Hi Excelianer
Ich habe folgendes Problem:
Aus einer sehr umfangreichen Datenbank bekomme ich über das Auswertungscenter die Daten in eine Excel Tabelle eingespielt. Es handelt sich um Personendaten, Datumsdaten und leider auch Beschreibungen aus Textfeldern!
Das Problem ist nun dass das Programm das die Daten in Die Excel Tabelle ausgibt immer nur 250 Zeichen in eine Zelle schreiben will! Nun habe ich vier Textfelder in denen mehrere 1000 Zeichen sein KÖNNEN.
Nun bekomme ich eine Tabelle die für jedes Textfeld und jede Auswertung unterschiedlich viel Spalten hat!
Mein Problem ist nun, dass ich die Daten, inkl Textfelder, auf einem A4 Blatt zusammenfassen sollte! jedes Textfeld bekommt seine eigene Zeile
Das hat bis jezt über Formeln relativ gut geklappt. Nur sind es jezt so viele Spalten, dass die Formel zulange wird!
zum Verständnis eine Beispielmappe:

Die Datei https://www.herber.de/bbs/user/37062.xls wurde aus Datenschutzgründen gelöscht

Also das Ziel ist eine Möglichkeit zu finden alle zellen des Datensatzes 1 die in der Überschrift "Textfeld1" (bzw. Texfeld2, Texfeld3,...) haben in eine Zelle zusammenfassen!
Für euch ist es sicher nicht leicht zu verstehen (mit meiner schlechten Erklärung schon garnicht)
Danke Florian
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellen dynamisch verbinden
28.09.2006 11:56:13
Reinhard
Hi Florian,
die datei: https://www.herber.de/bbs/user/37063.xls
hat folgenden Code in Modul1, gestartet mit Button im ersten Blatt:
Option Explicit
Sub tt()
Dim wsQ As Worksheet, wsZ As Worksheet, Zei As Long, Spa As Integer
Dim Zeilen As Long, Spalten As Integer, SpaZ As Integer
Application.ScreenUpdating = False
Set wsQ = Worksheets("Datenausgabe")
Set wsZ = Worksheets("Tabelle3")
With wsZ
'.Activate
.UsedRange.ClearContents
Zeilen = wsQ.Range("A65536").End(xlUp).Row
Spalten = wsQ.Range("Iv1").End(xlToLeft).Column
For Spa = 1 To Spalten
For Zei = 2 To Zeilen
SpaZ = CInt(Mid(wsQ.Cells(1, Spa), 9, InStr(wsQ.Cells(1, Spa), "_") - 9))
.Cells(Zei, SpaZ) = .Cells(Zei, SpaZ) & wsQ.Cells(Zei, Spa)
Next Zei
Next Spa
End With
Application.ScreenUpdating = True
End Sub

Gruß
Reinhard
ps: Ich freue mich über eine Rückmeldung ob diese Antwort hilfreich war oder nicht..
Anzeige
AW: Zellen dynamisch verbinden
28.09.2006 12:10:00
FloGo
Hallo Reinhard!
Vielen Dank für deine Rückmeldung!
Ich hatte das Problem auch schon einaml in VBA gelöst.
Hatte sogar den selben Lösungsweg wie du! Jedoch eine bisschen andere Struktur und darum war der Code bei 400 Datensätzen schon sehr langsam. Dein Code ist um einiges schneller. Ich denke ich komme mit deiner Lösung klar!
Danke Florian
Anzeige
AW: Zellen dynamisch verbinden
28.09.2006 14:35:32
FloGo
Hallo
Jezt habe ich ein neues Problem:
Laufzeitfehler "Es steht zu wenig Speicher zur verfügung"
Tritt in dieser Zeile auf:
.Cells(Zei, SpaZ + 10) = .Cells(Zei, SpaZ + 10) & .Cells(Zei, Spa)
Weiss jemand was der Grund sein könnte?
Florian
;
Anzeige
Anzeige

Infobox / Tutorial

Zellen dynamisch verbinden in Excel


Schritt-für-Schritt-Anleitung

Um Zellen in Excel dynamisch zu verbinden, kannst Du VBA (Visual Basic for Applications) verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf „VBAProject (DeinDokument.xlsx)“, gehe auf „Einfügen“ und wähle „Modul“.

  3. Kopiere und füge den folgenden Code ein:

    Option Explicit
    Sub ZellenDynamischVerbinden()
        Dim wsQ As Worksheet, wsZ As Worksheet
        Dim Zei As Long, Spa As Integer
        Dim Zeilen As Long, Spalten As Integer, SpaZ As Integer
    
        Application.ScreenUpdating = False
        Set wsQ = Worksheets("Datenausgabe") ' Quellblatt
        Set wsZ = Worksheets("Zielblatt") ' Zielblatt
    
        With wsZ
            .UsedRange.ClearContents
            Zeilen = wsQ.Range("A65536").End(xlUp).Row
            Spalten = wsQ.Range("Iv1").End(xlToLeft).Column
    
            For Spa = 1 To Spalten
                For Zei = 2 To Zeilen
                    SpaZ = CInt(Mid(wsQ.Cells(1, Spa), 9, InStr(wsQ.Cells(1, Spa), "_") - 9))
                    .Cells(Zei, SpaZ) = .Cells(Zei, SpaZ) & wsQ.Cells(Zei, Spa)
                Next Zei
            Next Spa
        End With
    
        Application.ScreenUpdating = True
    End Sub
  4. Ändere die Blattnamen in der Zeile Set wsQ = Worksheets("Datenausgabe") und Set wsZ = Worksheets("Zielblatt") entsprechend Deinen Blättern.

  5. Starte das Makro: Gehe zurück zu Excel, drücke ALT + F8, wähle ZellenDynamischVerbinden und klicke auf „Ausführen“.


Häufige Fehler und Lösungen

  • Fehler: "Es steht zu wenig Speicher zur Verfügung"

    • Dieser Fehler tritt häufig auf, wenn die Excel-Tabelle zu viele Daten enthält. Versuche, die Anzahl der Zeilen, die Du verketten möchtest, zu reduzieren oder die Daten auf mehrere Blätter zu verteilen.
  • Fehler: "Excel-Tabelle Zellen verbinden nicht möglich"

    • Achte darauf, dass Du nicht versuchst, Zellen zu verbinden, die sich in einer intelligenten Tabelle befinden. Konvertiere die intelligente Tabelle in einen normalen Bereich.

Alternative Methoden

Falls Du die VBA-Methode nicht verwenden möchtest, kannst Du folgende alternative Ansätze ausprobieren:

  • Excel-Funktion VERKETTEN oder &-Operator: Du kannst Formeln verwenden, um Zellen zu verbinden. Zum Beispiel:

    =VERKETTEN(A1; " "; B1)

    oder

    =A1 & " " & B1
  • Power Query: Importiere Deine Daten in Power Query und nutze die Merging-Funktion, um Zellen zu verbinden und die Daten zu transformieren.


Praktische Beispiele

  1. Verkettung von Textfeldern:

    • Angenommen, Du hast in Spalte A und B Text, den Du verbinden möchtest. In Spalte C kannst Du die folgende Formel verwenden:
    =A1 & " " & B1
  2. Dynamisches Verbinden:

    • Wenn Du eine Liste hast, die regelmäßig aktualisiert wird, kannst Du VBA verwenden, um die Zellen bei jedem Update automatisch zu verbinden.

Tipps für Profis

  • Nutze Datenüberprüfung in Excel, um sicherzustellen, dass nur bestimmte Werte in die Zellen eingegeben werden, bevor Du sie verbindest.
  • Experimentiere mit Formeln wie TEXTVERKETTEN, um mehrere Zellen gleichzeitig zu verbinden, besonders in neuen Excel-Versionen.

FAQ: Häufige Fragen

1. Kann ich Zellen aus mehreren Blättern verbinden? Ja, Du kannst den VBA-Code anpassen, um Zellen von verschiedenen Arbeitsblättern zu verbinden, indem Du die entsprechenden Blätter im Code angibst.

2. Wie kann ich die Ergebnisse in einer neuen Zelle anzeigen? Wenn Du eine neue Zelle für das Ergebnis verwenden möchtest, ändere die Zielzelle im VBA-Code entsprechend.

3. Gibt es eine Möglichkeit, die Verkettung ohne VBA zu automatisieren? Ja, Du kannst Excel-Tabellen und die Funktion TEXTVERKETTEN verwenden, um dies zu erreichen, ohne VBA zu nutzen.

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