Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA - Zellen kopieren - fortlaufend einfügen

VBA - Zellen kopieren - fortlaufend einfügen
14.11.2016 10:13:53
Hans
Hallo Gemeinde,
ich habe folgende Formel in einer Zeile:
=SUMMEWENNS('Plan per Employee'!$AE:$AE;'Plan per Employee'!$A:$A; 'Report - Sum Plan per Employee'!$A9)
Nun möchte ich mit Hilfe von VBA diese Zelle ( und die drunter auch ) kopieren und in die nächste Spalte einfügen, in der nächsten Spalte soll jedoch das stehen:
=SUMMEWENNS('Plan per Employee'!$AF:$AF;'Plan per Employee'!$A:$A; 'Report - Sum Plan per Employee'!$A9)
D.h. ich möchte das der Code bei jedem Klick auf den Button, die Formel fortlaufend verändert.
Danke im Voraus!
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA - Zellen kopieren - fortlaufend einfügen
14.11.2016 20:26:39
fcs
Hallo Hans,
wenn du in einem Teil der Formel das $-Zeichen für absoluten Bezug weglässt, dann kann man die normele Kopierfunktion nutzen.
Brauchst du bei dem Bezug auf die zu summierenden Werte unbedingt einen absoluten Bezug auf die Spalte?
Damit würde ein Makro sehr viel komplizierter, da man den Formeltext analysieren müsste, um die nächste Spalte zu ermitteln.
LG
Franz
 ABCD
8 AusgangsformelKopie 1Kopie 2
9X87,1155,8894,79
10 234

Formeln der Tabelle
ZelleFormel
B9=SUMMEWENNS('Plan per Employee'!AE:AE;'Plan per Employee'!$A:$A; 'Report - Sum Plan per Employee'!$A9)
C9=SUMMEWENNS('Plan per Employee'!AF:AF;'Plan per Employee'!$A:$A; 'Report - Sum Plan per Employee'!$A9)
D9=SUMMEWENNS('Plan per Employee'!AG:AG;'Plan per Employee'!$A:$A; 'Report - Sum Plan per Employee'!$A9)
B10=SPALTE()
C10=SPALTE()
D10=SPALTE()


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Kopiermakro: Sub FormelKopieren() Dim rng As Range Set rng = ActiveCell.Resize(2, 1) rng.Copy rng.Offset(0, 1) End Sub
Anzeige
AW: VBA - Zellen kopieren - fortlaufend einfügen
15.11.2016 10:56:21
Hans
Hallo Franz,
danke erst mal, im Prinzip ist es das was ich Suche.
Ich hätte da noch eine banale Frage und zwar wie würde das Kopiermakro heißen, wenn ich es für die Zellen: AE9:AE20 benötige?
Gruß Hans
AW: VBA - Zellen kopieren - fortlaufend einfügen
15.11.2016 12:54:15
fcs
Hallo Hans,
für einen bestimmten Zeilenbereich kann man es z.B. wie folgt umsetzen.
Dan muss der Cursor nur in einer Zelle der zu koperenden Spale stehen.
Gruß
Franz
Sub FormelKopieren()
Dim rng As Range, Spalte As Long
Spalte = ActiveCell.Column
With ActiveSheet
Set rng = .Range(.Cells(9, Spalte), .Cells(20, Spalte))
End With
rng.Copy rng.Offset(0, 1)
End Sub

Anzeige
AW: VBA - Zellen kopieren - fortlaufend einfügen
15.11.2016 16:22:25
Hans
Hallo Franz,
ich habe mal eine Beispiel Tabelle erstellt mit makro. Vlt könntest du mir da weiterhelfen ?
https://www.herber.de/bbs/user/109446.xlsm
Das Problem liegt darin, dass das Makro die Werte immer nur von "AD:AD" zu "AE:AE" ändert und dies fortlaufend. ich brauch jedoch in jedem neuen Monat, "AD:AD" dann "AE:AE" dann "AF:AF" usw.
Anzeige
AW: VBA - Zellen kopieren - fortlaufend einfügen
16.11.2016 09:48:12
Hans
Ich habe es hinbekommen, danke Franz !
;

Forumthreads zu verwandten Themen

Anzeige
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: Zellen fortlaufend kopieren und einfügen


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und wechsle zum VBA-Editor:

    • Drücke ALT + F11, um den Editor zu öffnen.
  2. Füge ein neues Modul hinzu:

    • Klicke mit der rechten Maustaste auf deinen VBA-Projekt-Namen, wähle Einfügen und dann Modul.
  3. Kopiere den folgenden Code in das Modul:

    Sub FormelKopieren()
       Dim rng As Range, Spalte As Long
       Spalte = ActiveCell.Column
       With ActiveSheet
           Set rng = .Range(.Cells(9, Spalte), .Cells(20, Spalte))
       End With
       rng.Copy rng.Offset(0, 1)
    End Sub
  4. Schließe den VBA-Editor:

    • Drücke ALT + Q oder schließe das Fenster.
  5. Füge einen Button in dein Excel-Blatt ein:

    • Gehe zu Entwicklertools > Einfügen > Button (Formularsteuerung) und ziehe den Button auf dein Arbeitsblatt.
  6. Weise das Makro dem Button zu:

    • Klicke mit der rechten Maustaste auf den Button und wähle Makro zuweisen. Wähle das Makro FormelKopieren aus.
  7. Teste das Makro:

    • Positioniere den Cursor in der gewünschten Zelle und klicke auf den Button, um die Zellen fortlaufend zu kopieren und einzufügen.

Häufige Fehler und Lösungen

  • Fehler: Das Makro kopiert nur eine Spalte:

    • Stelle sicher, dass der Cursor in der richtigen Zelle steht, bevor du das Makro ausführst.
  • Fehler: Absolute Zellbezüge sind nicht korrekt:

    • Überprüfe, ob das $-Zeichen in der Formel korrekt gesetzt ist, um absolute Bezüge zu nutzen.

Alternative Methoden

  • Excel Formel kopieren ohne VBA:

    • Du kannst die Formel manuell kopieren, indem du den Zellbezug anpasst. Zum Beispiel:
      =SUMMEWENNS('Plan per Employee'!AF:AF;'Plan per Employee'!$A:$A; 'Report - Sum Plan per Employee'!$A9)
  • Verwendung der OFFSET-Funktion:

    • Anstatt VBA zu verwenden, kannst du auch eine Formel mit OFFSET einsetzen, um Werte dynamisch zu ziehen.

Praktische Beispiele

  • Beispiel 1:

    • Wenn du die Werte aus den Zellen AE9:AE20 in die Spalte AF kopieren möchtest, setze den Cursor in die Zelle AE9, bevor du das Makro ausführst.
  • Beispiel 2:

    • Um die Formel für mehrere Monate fortlaufend zu kopieren, kannst du das Makro anpassen, indem du die Spalte dynamisch ermittelst.

Tipps für Profis

  • VBA optimieren:

    • Du kannst das Makro erweitern, um mehrere Spalten in einem Schritt zu kopieren, indem du Schleifen verwendest.
  • Fehlerbehandlung hinzufügen:

    • Erweitere dein Makro mit On Error Resume Next, um unerwartete Fehler zu vermeiden.
  • Dokumentation:

    • Halte deine VBA-Codes gut dokumentiert, um die Nachverfolgbarkeit zu gewährleisten.

FAQ: Häufige Fragen

1. Wie kann ich das Makro anpassen, um mehrere Zeilen zu kopieren?
Du kannst die Zeilenanzahl in der Set rng = .Range(.Cells(9, Spalte), .Cells(20, Spalte))-Zeile anpassen. Ändere die 20 in die gewünschte Zeilennummer.

2. Was passiert, wenn ich den Button mehrmals klicke?
Das Makro wird die Werte jedes Mal in die nächste Spalte kopieren. Achte darauf, dass keine Daten überschrieben werden.

3. Wie kann ich das Makro für andere Spalten verwenden?
Setze einfach den Cursor in die Zelle der gewünschten Spalte, bevor du das Makro ausführst.

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