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

Makro (Excel) gesucht - bitte helfen...

Forumthread: Makro (Excel) gesucht - bitte helfen...

Makro (Excel) gesucht - bitte helfen...
27.08.2007 15:50:00
Dennis
Hallo Forum
Reinhard, Chaos - danke für Euer Engagement. Bis auf ein paar Kleinigkeiten klappt auch alles soweit, deshalb nochmals eine Anfrage...
Was bisher geschah:
Gesucht ist ein Makro, das jede einzelne Zeile kopiert und insgesamt drei Mal nachfolgend einfügt (die erste Zeile steht letztlich also 4 mal untereinander...) Zudem sollte der Wert eines bestimmten Feldes (Spalte AZ) um "1" erhöht werden (bis "4", da dies der maximalen Anzahl des Datensatzes entspricht). Standardmässig steht der Wert "1" in besagtem Feld.
Aber zum 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, der eingebaut wurde, in die erste Spalte geschrieben und überschreibt bestehende Inhalte - kann man den Zähler einem ganz bestimmten Feld zuweisen (in diesem Fall die Zellen der Splate AZ)?
Hier das Makro (Merci Reinhard):
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


Anbei findet ihr Ausschnitte der Tabelle (Ist- Zustand, Soll- Zustand, Zustand nach durchlaufen des Makros)
Userbild

Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro (Excel) gesucht - bitte helfen...
28.08.2007 04:09:25
Wuxinese
Hallo Dennis,
ich hab folgendes Makro gebastelt:

Sub tt()
Dim Zei As Long, N As Byte, Ende As Long, ende2 As Long
With ActiveSheet
Ende = Cells(.Rows.Count, 2).End(xlUp).Row
ende2 = Ende
For i = 2 To ende2
For Zei = (Ende - 1) * 4 + 1 To (Ende - 1) * 4 - 2 Step -1
.Range(.Cells(Ende, 1), .Cells(Ende, .Columns.Count)).Copy _
Destination:=.Range("a" & Zei)
Next Zei
Ende = Ende - 1
Next i
N = 1
For i = 2 To (ende2 - 1) * 4 + 1
.Cells(i, "az") = N
N = N + 1
If N = 5 Then N = 1
If .Cells(i, "az") = 1 Then
.Cells(i, "ba") = "UHR"
ElseIf .Cells(i, "az") = 2 Then
.Cells(i, "ba") = "Tagesdienst"
ElseIf .Cells(i, "az") = 4 Then
.Cells(i, "ba") = "FALSCH"
ElseIf .Cells(i, "az") = 3 Then
.Cells(i, "ba") = "Spezielle IR"
End If
Next i
End With
End Sub


Das sollte so ziemlich das machen, was Du willst!
Gruss
Rainer

Anzeige
;

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