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

Forumthread: Makro wiederholen mit Zelle darunter

Makro wiederholen mit Zelle darunter
14.07.2017 10:13:49
Roman
Hallo zusammen,
ich als Praktikant habe die Aufgabe bekommen einen Prozess in Excel zu automatisieren. Es geht darum in den Zellen zu erkennen was darin steht und dann je nachdem eine passende Grafik aus einem anderen Sheet zu kopieren, und sie in ein neues Sheet einzufügen. Ich bin soweit gekommen dass es für die erste Zeile funktioniert, jedoch suche ich nach einer Möglichkeit das Makro für die nächste Zeile zu verwenden. Wichtige Info dazu: In meinem Makro wird explizit die Zelle genannt. Der Code sieht wie folgt aus:
Sub Modulnummer_1()
'Modulnummer 1
If Range("B2").Value = "PS-24" Then
Sheets("Vorlagen").Select
Range("A1:F17").Select
Selection.Copy
Sheets("ttt").Select
Range("A1").Select
ActiveSheet.Paste
Exit For
ElseIf Range("B2").Value = "AS-P" Then
Sheets("Vorlagen").Select
Range("A19:F35").Select
Selection.Copy
Sheets("ttt").Select
Range("A1").Select
ActiveSheet.Paste
ElseIf Range("B2").Value = "DO-FA-12-H" Then
Sheets("Vorlagen").Select
Range("A55:F71").Select
Selection.Copy
Sheets("ttt").Select
Range("A1").Select
ActiveSheet.Paste
ElseIf Range("B2").Value = "DO-FC-8-H" Then
Sheets("Vorlagen").Select
Range("A73:F89").Select
Selection.Copy
Sheets("ttt").Select
Range("A1").Select
ActiveSheet.Paste
ElseIf Range("B2").Value = "AO-V-8-H" Then
Sheets("Vorlagen").Select
Range("A109:F125").Select
Selection.Copy
Sheets("ttt").Select
Range("A1").Select
ActiveSheet.Paste
ElseIf Range("B2").Value = "AO-8-H" Then
Sheets("Vorlagen").Select
Range("A127:F143").Select
Selection.Copy
Sheets("ttt").Select
Range("A1").Select
ActiveSheet.Paste
ElseIf Range("B2").Value = "DI-16" Then
Sheets("Vorlagen").Select
Range("A253:F269").Select
Selection.Copy
Sheets("ttt").Select
Range("A1").Select
ActiveSheet.Paste
ElseIf Range("B2").Value = "RTD-DI-16" Then
Sheets("Vorlagen").Select
Range("A271:F287").Select
Selection.Copy
Sheets("ttt").Select
Range("A1").Select
ActiveSheet.Paste
ElseIf Range("B2").Value = "UI-8.AO-4-H" Then
Sheets("Vorlagen").Select
Range("A289:F305").Select
Selection.Copy
Sheets("ttt").Select
Range("A1").Select
ActiveSheet.Paste
ElseIf Range("B2").Value = "UI-8.AO-V-4-H" Then
Sheets("Vorlagen").Select
Range("A307:F323").Select
Selection.Copy
Sheets("ttt").Select
Range("A1").Select
ActiveSheet.Paste
ElseIf Range("B2").Value = "UI-8.DO-FC-4-H" Then
Sheets("Vorlagen").Select
Range("A325:F341").Select
Selection.Copy
Sheets("ttt").Select
Range("A1").Select
ActiveSheet.Paste
ElseIf Range("B2").Value = "UI-16" Then
Sheets("Vorlagen").Select
Range("A343:F359").Select
Selection.Copy
Sheets("ttt").Select
Range("A1").Select
ActiveSheet.Paste
End If
End Sub

Danke im Vorraus
MfG Roman Bürger
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Makro wiederholen mit Zelle darunter
14.07.2017 10:38:50
UweD
Hallo Roman
Erstmal: auf select kann in 99% verzichtet werden.
dann musst du eine Schleife drumlegen..
- hier mal Beispiel für 2 bis 10
- was innderhalb dann anders gehandhabt werden soll,kann ich nicht wissen

Sub Modulnummer_1()
Dim RNG As Range
With Sheets("Vorlagen")
For i = 2 To 10 'anpassen
Select Case .Cells(i, 2) 'Spalte2 =B
Case "PS-24"
Set RNG = .Range("A1:F17")
Case "AS-P"
Set RNG = .Range("A19:F35")
Case "DO-FA-12-H"
Set RNG = Range("A55:F71")
'...usw.
Case "UI-16"
Set RNG = .Range("A343:F359")
End Select
RNG.Copy Sheets("ttt").Range("A1")
Next
End With
End Sub

LG UweD
Anzeige
AW: Makro wiederholen mit Zelle darunter
19.07.2017 10:00:34
Roman
Hallo Uwe
Meine aktuelle Schleife funktioniert schon, nur muss der Bereich in der meine Grafik eingefügt wird nach jedem Durchgang um 18 Zeilen nach unten geschoben werden. Derzeit ist es so dass die Schleife zwar läuft, jedoch wird die "gefundene" Grafik immer in die Zelle A1 eingefügt. Sie müsste aber beim ersten Durchgang in A1 eingefügt werden, beim zweiten Durchgang in A19 usw...
Leider habe ich es nicht geschafft den Code der in der Antwort steht in meinen einzufügen..
Grüße Roman
Anzeige
AW: Makro wiederholen mit Zelle darunter
20.07.2017 09:56:41
UweD
Hallo
Sub Modulnummer_1()
    Dim RNG As Range, i As Integer, Vers As Integer
    
    With Sheets("Vorlagen")
        For i = 2 To 10 'anpassen 
            Select Case .Cells(i, 2) 'Spalte2 =B 
                Case "PS-24"
                    Set RNG = .Range("A1:F17")
                Case "AS-P"
                    Set RNG = .Range("A19:F35")
                Case "DO-FA-12-H"
                    Set RNG = Range("A55:F71")
                '...usw. 
                Case "UI-16"
                    Set RNG = .Range("A343:F359")
            
            End Select
            
            If Not RNG Is Nothing Then
                RNG.Copy Sheets("ttt").Range("A1").Offset((i - 2) * 18, 0)
                Set RNG = Nothing
            End If
        Next
    End With
End Sub

LG UweD
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Makro wiederholen mit Zelle darunter


Schritt-für-Schritt-Anleitung

Um dein Makro so anzupassen, dass es den Inhalt der Zelle in der nächsten Zeile wiederholt, kannst du die folgende VBA-Lösung verwenden. Diese Schleife durchläuft die Zeilen von 2 bis 10 und kopiert die entsprechenden Grafiken aus dem „Vorlagen“-Sheet in das „ttt“-Sheet. Der Code sieht folgendermaßen aus:

Sub Modulnummer_1()
    Dim RNG As Range, i As Integer
    With Sheets("Vorlagen")
        For i = 2 To 10 ' anpassen
            Select Case .Cells(i, 2) ' Spalte 2 = B
                Case "PS-24"
                    Set RNG = .Range("A1:F17")
                Case "AS-P"
                    Set RNG = .Range("A19:F35")
                Case "DO-FA-12-H"
                    Set RNG = .Range("A55:F71")
                ' ...usw.
                Case "UI-16"
                    Set RNG = .Range("A343:F359")
            End Select

            If Not RNG Is Nothing Then
                RNG.Copy Sheets("ttt").Range("A1").Offset((i - 2) * 18, 0)
                Set RNG = Nothing
            End If
        Next
    End With
End Sub

In diesem Code wird Offset verwendet, um den Inhalt der Zelle in der nächsten Zeile wiederholen. Dabei wird für jede Iteration die Zielzelle um 18 Zeilen nach unten verschoben.


Häufige Fehler und Lösungen

Problem: Das Makro kopiert immer in die Zelle A1.
Lösung: Stelle sicher, dass du die Offset-Methode korrekt verwendest, um den Zielbereich dynamisch zu ändern.

Problem: Fehlermeldungen beim Ausführen des Makros.
Lösung: Überprüfe, ob die angegebenen Bereiche in deinem Code tatsächlich existieren und korrekt sind.


Alternative Methoden

Eine weitere Möglichkeit, den Inhalt der Zelle in der nächsten Zeile zu wiederholen, wäre die Verwendung einer Excel-Formel. Zum Beispiel könntest du die Formel in einer benachbarten Zelle verwenden, um den Inhalt der Zelle darüber zu beziehen.

=B2

Diese Formel würde den Inhalt von Zelle B2 in die Zelle darunter wiederholen. Du kannst die Formel in die nachfolgenden Zellen ziehen, um den Inhalt entsprechend zu kopieren.


Praktische Beispiele

Wenn du beispielsweise in Zelle B2 „PS-24“ hast und die Grafik in A1:F17 befindet, wird die Grafik in „ttt“ in Zelle A1 eingefügt. In der nächsten Iteration, wenn in B3 „AS-P“ steht, wird die Grafik in A19:F35 in Zelle A19 von „ttt“ eingefügt.

Durch die Verwendung des obigen Codes kannst du sicherstellen, dass der Prozess für alle gewünschten Zellen funktioniert.


Tipps für Profis

  • Reduziere die Verwendung von Select und Activate, um deinen Code effizienter zu gestalten.
  • Nutze Error Handling, um mögliche Laufzeitfehler abzufangen und eine benutzerfreundliche Fehlermeldung anzuzeigen.
  • Verwende Named Ranges, um deine Bereiche leichter zu verwalten und den Code lesbarer zu machen.

FAQ: Häufige Fragen

1. Wie kann ich das Makro für mehr als 10 Zeilen anpassen?
Du kannst den Wert in For i = 2 To 10 einfach anpassen, um die gewünschte Anzahl an Zeilen zu durchlaufen.

2. Funktioniert dieser Code in allen Excel-Versionen?
Der VBA-Code sollte in allen modernen Excel-Versionen (Excel 2010 und höher) funktionieren, solange die Makros aktiviert sind.

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