Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
900to904
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
900to904
900to904
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Makro für Kopieren u. Wert ändern in Excel

Makro für Kopieren u. Wert ändern in Excel
26.08.2007 14:29:00
Dennis
Freunde der Codes, Zahlen und Formeln
Wer kann mir beim Erstellen eines Makros für Excel helfen? Hab zwar schon ein bissle rumgebastelt und allgemeine VB- Kenntnisse verbessert, das konkrete Problem vermag ich dennoch nicht zu lösen. Folgende Situation:
Die Arbeitsmappe hat ca. 70000 Datensätzen (verteilt auf 2 Tabellen). Jeder einzelne Datensatz sollte kopiert und drei Mal nachfolgend eingefügt werden.
(wichtig ist natürlich, dass der darauffolgende Datensatz nicht überschrieben wird). Dabei soll sich der Wert einer bestimmten Zelle um „1“ erhöhen (Startwert ist standardmäßig „1“). Allerdings nur bis Wert „4“, da dieser der maximalen Anzahl des Datensatzes entspricht.
ALT:
A B
Datensatz 1 1
Datensatz 2 1
Datensatz 3 1
NEU:
A B
Datensatz 1 1
Datensatz 1 2
Datensatz 1 3
Datensatz 1 4
Datensatz 2 1
Datensatz 2 2
Datensatz 2 3
Datensatz 2 4
Hab versucht das Problem mit der „Aufnahme“ eines Makros zu lösen, hier fehlt aber der relative Zeilenbezug, d.h. nach dem Kopieren erfolgt Prozedur auf Basis der absoluten Bezüge
 nur der erste Datensatz wird vervielfältigt und „springt“ nicht automatisch zum zweiten Datensatz.
Für Lösungsvorschläge bin ich sehr dankbar………. DANKE
Meine bisherigen kläglichen VBA- Versuche:

Sub Makro2()
' Makro2 Makro
' Tastenkombination: Strg+v
'Rows("2:2").Select
Rows("2:2").Activate
'Range("AZ2").Select
Range("AZ2").Activate
'Range("AZ2").Offset
'Rows.Offset(1, 0).Select
Range("B2").Activate
Selection.Copy
Rows("3:3").Select
Range("B3").Activate
Selection.Insert Shift:=xlDown
Selection.Copy
Rows("3:3").Select
Range("B3").Activate
Selection.Insert Shift:=xlDown
Selection.Copy
Rows("3:3").Select
Range("B3").Activate
Selection.Insert Shift:=xlDown
Range("AZ3").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "2"
Range("AZ4").Select
ActiveCell.FormulaR1C1 = "3"
Range("AZ5").Select
ActiveCell.FormulaR1C1 = "4"
ActiveCell.Offset(1, 0).Select
ActiveCell.EntireRow.Activate
End Sub


Dennis

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

Betreff
Datum
Anwender
Anzeige
AW: Makro für Kopieren u. Wert ändern in Excel
26.08.2007 16:29:26
Reinhard
Hi Dennis,

Option Explicit
Sub tt()
Dim Zei As Long, N As Byte, Ende As Long
Ende = Cells(Rows.Count, 1).End(xlUp).Row
For Zei = (Ende) * 4 To 4 Step -4
Range(Cells(Zei - 3, 1), Cells(Zei, 1)) = Cells(Ende, 1)
Ende = Ende - 1
Next Zei
For N = 1 To 4
Cells(N, 2) = N
Next N
Ende = Cells(Rows.Count, 1).End(xlUp).Row
Range("B1:B4").Copy Destination:=Range(Cells(5, 2), Cells(Ende, 2))
End Sub

Gruß
Reinhard

AW: Makro für Kopieren u. Wert ändern in Excel
26.08.2007 16:48:00
Chaos
Servus Dennis,
oder so:

Sub neuerDatensatz()
Dim lngLetzte As Long, lngZeile As Long
lngLetzte = Range("A65536").End(xlUp).Offset(0, 0).Row
For lngZeile = lngLetzte To 2 Step -1
If Cells(lngZeile, 1).Value  Cells(lngZeile - 1, 1).Value Then
Cells(lngZeile, 1).EntireRow.Insert Shift:=xlDown
Cells(lngZeile, 1).EntireRow.Insert Shift:=xlDown
Cells(lngZeile, 1).EntireRow.Insert Shift:=xlDown
End If
Next lngZeile
Dim lngZeile1 As Long, lngLetzte1 As Long
lngLetzte1 = Range("A65536").End(xlUp).Offset(0, 0).Row
Dim lngLetzteNeu As Long
lngLetzteNeu = lngLetzte1 + 3
For lngZeile1 = 1 To lngLetzteNeu Step 1
If Cells(lngZeile1, 1).Value = "" Then
Cells(lngZeile1 - 1, 1).EntireRow.Copy Cells(lngZeile1, 1)
End If
Next lngZeile1
Dim lngZeile2 As Long
For lngZeile2 = 2 To lngLetzteNeu Step 1
If Cells(lngZeile2, 1).Value = Cells(lngZeile2 - 1, 1).Value Then
Cells(lngZeile2, 2).Value = Cells(lngZeile2 - 1, 2).Value + 1
End If
Next lngZeile2
End Sub


jetzt nur für eine Tabelle, kann aber sehr lange dauern bei großen Datenmengen.
Gruß
Chaos

Anzeige
AW: Makro für Kopieren u. Wert ändern in Excel
27.08.2007 12:51:00
Dennis
Hallo Chaos, Hallo Reinhard,
...danke für Euer Engagement. Bis auf ein paar Kleinigkeiten klappt auch alles soweit...
Reinhard - verzeih, aber darf ich dich nochmals um Rat fragen...? Folgendes Problem: Die erste Zeile der Tabelle wird ebenso kopiert und eingefügt. Ist es möglich, diese Zeile "aussen vor" zu lassen, da Überschriften in ihr stehen? Sonst stehen letztlich "falsche Werte" in der Tabelle. Zudem wird der Zähler, den du eingebaut hast in die erste Spalte geschrieben und überschreibt bestehende Inhalte - kann man den Zähler einem ganz bestimmten Feld zuweisen?
Anbei findet ihr Ausschnitte der Tabelle (Ist- Zustand, Soll- Zustand, aktueller Zustand)
Userbild
Chaos - bei deinem Makro tritt ein Debugging- Fehler in der "drittletzten" Zeile (cells(lngZeile2, 2)value = cells(lngZeile2 -1, 2).value +1) auf...
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige