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

Forumthread: VBA Formel in Spalte kopieren

VBA Formel in Spalte kopieren
05.08.2016 11:17:18
Jemima
Hallo alle zusammen,
ich komme leider nicht weiter:
ich habe eine Kundendatenbank erstellt. Leider sind Vorwahl und die Nummer bei der Telefonnummer immer in 2 Spalten getrennt. Ich möchte gerne in Spalte L die Spalte J&K zusammenfügen. Wie kann ich das anhand eines Makros machen? Da immer mehr Daten hinzu kommen, muss der Button öfters betätigt werden können. Anschließend sollen die Formeln wieder gelöscht werden, dass nur noch der Wert in der Zelle steht.
Hat jmd. eine Idee?
Vielen Dank schon mal :)
Lg
Jemima
Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Formel in Spalte kopieren
05.08.2016 11:29:54
baschti007
Hey Ho
Dein Worksheet Tabelle1
Sub Jo()
Dim zell As Range
For Each zell In ThisWorkbook.Worksheets("Tabelle1").Range("J2:J" & ThisWorkbook.Worksheets(" _
Tabelle1").Cells(1048576, "J").End(xlUp).Row)
zell.Offset(0, 2) = zell.Value & ";" & zell.Offset(0, 1).Value
Next
End Sub

Anzeige
AW: VBA Formel in Spalte kopieren
05.08.2016 11:53:31
Rudi
Hallo,
Sub aaa()
with range(cells(2,11),cells(rows.count,11).end(xlup)).Offset(,1)
.formular1c1="=rc[-2]&rc[-1]"
.copy
.pastespecial xlpastevalues
end with
application.cutcopymode=false
End Sub
Gruß
Rudi
AW: VBA Formel in Spalte kopieren
05.08.2016 12:40:39
Jemima
Danke schon mal :)
Aber das erste Makro zeigt der mir bei
For Each zell In ThisWorkbook.Worksheets("Tabelle1").Range("J2:J" & ThisWorkbook.Worksheets(" _
Tabelle1").Cells(1048576, "J").End(xlUp).Row)
direkt in Rot und Syntaxfehler und beim zweiten sagt der mir
.pastespecial xlpastevalues
ist falsch
Woran kann das liegen?
Anzeige
AW: VBA Formel in Spalte kopieren
05.08.2016 12:46:52
baschti007
Hey du musst das in eine zeile machen also das untere hoch und dann das _ weg
For Each zell In ThisWorkbook.Worksheets("Tabelle1").Range("J2:J" & ThisWorkbook.Worksheets(" _
Tabelle1").Cells(1048576, "J").End(xlUp).Row)
Gruß Basti
Woran kann das liegen?
05.08.2016 12:50:35
Rudi
Hallo,
Filter aktiv?
AW: Woran kann das liegen?
05.08.2016 13:09:19
Daniel
Hi
das Problem ist der falsch gesetzte Zeilenumbruch im Code (das " _" am ende)
dieser liegt hier innerhalb des Textstrings und wird daher nicht erkannt.
lösche ihn und füge den Code zu einer Zeile zusammen.
die Software dieses Forums versucht, bei überlangen Codezeilen den VBA-Zeilenumbruch einzufügen, damit der Code im Forum ohne seitliches Scrollen lesbar bleibt.
Leider funktioniert das nicht ganz so wie es sein sollte und man muss diese Zeilenumbrüche dann wieder entfernen, wenn man Code aus dem Forum in den VBA-Editor kopiert.
Gruß Daniel
Anzeige
AW: Woran kann das liegen?
05.08.2016 14:24:33
Jemima
Ja sind mehrere Filter drin, die kann ich auch nicht entfernen
Das andere Makro funktioniert leier immer noch nicht, ich hab das jetzt korrigiert
AW: VBA Formel in Spalte kopieren
05.08.2016 13:35:21
Gerd
Hallo Jemima!
Sub Jojo()
Dim zell As Range
Dim Ws As Worksheet
Dim Rng As Range
Set Ws = ThisWorkbook.Worksheets("Tabelle1")
With Ws
Set Rng = .Range(.Cells(2, 10), .Cells(.Rows.Count, 10).End(xlUp))
End With
For Each zell In Rng
zell.Offset(0, 2) = zell.Value & ";" & zell.Offset(0, 1).Value
Next
End Sub
Aber nimm doch den Code von Rudi. Der ist schneller.
Gruß Gerd
Anzeige
AW: VBA Formel in Spalte kopieren
05.08.2016 14:40:40
Jemima
Das Jojo Makro klappt, danke :)
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

VBA Formel in Spalte kopieren


Schritt-für-Schritt-Anleitung

Um eine Excel Formel in eine ganze Spalte zu kopieren, kannst du ein einfaches VBA-Makro verwenden. Hier ist eine Schritt-für-Schritt-Anleitung, um die Telefonnummern aus den Spalten J und K in Spalte L zusammenzuführen.

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

  2. Wähle im Projektfenster links das entsprechende Arbeitsblatt (z.B. "Tabelle1") aus.

  3. Klicke auf Einfügen und wähle Modul, um ein neues Modul zu erstellen.

  4. Kopiere den folgenden Code in das Modul:

    Sub TelefonnummernZusammenfuehren()
       Dim zell As Range
       For Each zell In ThisWorkbook.Worksheets("Tabelle1").Range("J2:J" & ThisWorkbook.Worksheets("Tabelle1").Cells(1048576, "J").End(xlUp).Row)
           zell.Offset(0, 2).Value = zell.Value & ";" & zell.Offset(0, 1).Value
       Next zell
    End Sub
  5. Schließe den VBA-Editor und gehe zurück zu Excel.

  6. Um das Makro auszuführen, drücke ALT + F8, wähle TelefonnummernZusammenfuehren und klicke auf Ausführen.

Dieses Makro fügt die Werte aus Spalte J und K in Spalte L zusammen und kann bei Bedarf mehrfach verwendet werden.


Häufige Fehler und Lösungen

  • Syntaxfehler im Code: Achte darauf, dass du alle Zeilen des Codes korrekt kopierst. Ein häufiges Problem ist der falsche Zeilenumbruch (das " _" am Ende einer Zeile). Entferne diesen, um den Code korrekt auszuführen.

  • Fehlermeldung bei .PasteSpecial: Wenn du die Methode .PasteSpecial verwendest, stelle sicher, dass du die korrekten Parameter übergibst. In den meisten Fällen ist es einfacher, die Werte direkt zuzuweisen, anstatt sie zu kopieren.


Alternative Methoden

Eine Alternative zum VBA-Makro ist die Verwendung von Excel-Formeln. Du kannst die folgenden Schritte ausführen:

  1. Gehe zu Zelle L2.

  2. Gib die folgende Formel ein:

    =J2 & ";" & K2
  3. Ziehe das kleine Quadrat in der unteren rechten Ecke der Zelle nach unten, um die Formel auf die gesamte Spalte zu übernehmen.

Diese Methode ist einfach, erfordert jedoch manuelles Ziehen, um die Formel für die gesamte Spalte zu übernehmen.


Praktische Beispiele

Hier ist ein Beispiel, wie du eine Formel in eine ganze Spalte kopieren kannst:

Angenommen, du hast in Spalte J die Vorwahl und in Spalte K die Nummer:

J (Vorwahl) K (Nummer) L (Telefonnummer)
030 1234567 030;1234567
040 7654321 040;7654321

Mit dem VBA-Makro oder der Formel in Spalte L kannst du die Werte aus den Spalten J und K zusammenführen.


Tipps für Profis

  • Nutze die Funktion Application.CutCopyMode = False, um den Kopiermodus nach dem Einfügen zu deaktivieren und das Arbeitsblatt sauber zu halten.

  • Wenn du oft mit großen Datenmengen arbeitest, kann es hilfreich sein, den Code so zu optimieren, dass er nur die benötigten Zeilen bearbeitet, um die Ausführungsgeschwindigkeit zu erhöhen.

  • Du kannst das Makro so anpassen, dass es auch andere Datenformate oder Berechnungen berücksichtigt, indem du zusätzliche Bedingungen einfügst.


FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass die Formel nur Werte und keine Formeln in Spalte L sind?
Um sicherzustellen, dass nur die Werte in Spalte L bleiben, kannst du nach dem Ausführen des Makros die Zeile .Value verwenden, um nur die Werte zu kopieren.

2. Funktioniert das Makro auch in Excel Online?
Leider ist VBA nicht in Excel Online verfügbar. Du kannst jedoch die Excel-Formel Methode verwenden, um die Daten zusammenzuführen.

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