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

Wenn Zeile 1 =x und Zeile 2 = y, dann...

Forumthread: Wenn Zeile 1 =x und Zeile 2 = y, dann...

Wenn Zeile 1 =x und Zeile 2 = y, dann...
14.11.2012 16:35:01
Tobias
Hallo,
ich brauche nochmal eure Hilfe.
Ich habe zwei Spalten. In der ersten sind Slidenummern 1-5 eingetragen, in der zweiten die Anzahl der Textboxen die auf ein Slide kommen sollen und in Spalte 3 steht Text der in die jeweilige Textbox kopiert werden soll. Also etwas so:
Slide_________Textbox_______Text
1_____________1_____________Hallo
1_____________2_____________Welt
1_____________3_____________Ich
2_____________1_____________Grüße
2_____________2_____________Dich
2_____________3_____________!!!
2_____________4_____________!!!
usw.
Ich möchte nun eine Schleife schreiben die sagt:
Wenn Slide = 1 und Textbox = 1 dann kopiere Hallo
Wenn Slide = 1 und Textbox = 2 dann kopiere Welt
for i = 1 to 2 (Spalte1)
for j = 1 to X (Spalte2)
if .cells(i,1) = 1 and .cells(j,1) = 1 then
.cells(j,1).offset(0,1).copy
end if
next j
next i
das war bist jetzt so meine idee, aber ich bekomme es nicht hin.
Bzgl. PowerPoint das bekomme ich hin, nur bei dieser Schleife brauche ich Hilfe.
beste Grüße
Tobi

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Du kopierst aber immer nur ;o)
14.11.2012 18:15:24
Matthias
Hallo Tobi
Du mußt auchmal was einfügen, sonst hat das Kopieren keinen Sinn ;-)
Ist denn X eien Variable?
So richtig weiß ich nicht was von wo aus und wann, wohin soll.
Gruß Matthias

AW: Du kopierst aber immer nur ;o)
14.11.2012 22:39:44
Tobias
hi Matthias!
Den Copy-Paste Vorgang bekomme ich hin, deshalb habe ich bei .copy aufgehört mit dem Code.
Wenn Slide=1 und Textbox=1 dann soll "Hallo" in die erste Textbox auf Slide 1 kopiert werden.
Ich habe "X" geschrieben, weil ja nicht auf jeder Slide gleichviele Textboxen sind.
VG
Tobi
Anzeige
;
Anzeige

Infobox / Tutorial

Wenn Zeile 1 = x und Zeile 2 = y, dann...


Schritt-für-Schritt-Anleitung

Um die gewünschte Schleife in Excel VBA zu erstellen, folge diesen Schritten:

  1. Öffne den VBA-Editor: Drücke ALT + F11 in Excel.

  2. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf "VBAProject (DeineDatei.xlsx)" > Einfügen > Modul.

  3. Gib den folgenden Code ein:

    Sub KopiereText()
       Dim i As Integer, j As Integer
       Dim X As Integer
    
       ' Setze X auf die Anzahl der Textboxen, die Du hast
       X = 3 ' Beispielwert, dies sollte dynamisch angepasst werden
    
       For i = 1 To 2 ' Schleife über die Slides (Spalte 1)
           For j = 1 To X ' Schleife über die Textboxen (Spalte 2)
               If Cells(i, 1).Value = 1 And Cells(j, 1).Value = 1 Then
                   Cells(j, 1).Offset(0, 1).Copy
                   ' Hier den Paste-Befehl einfügen, um den Text zu platzieren
               End If
           Next j
       Next i
    End Sub
  4. Anpassen der Werte: Stelle sicher, dass Du X an die tatsächliche Anzahl der Textboxen anpasst.


Häufige Fehler und Lösungen

  • Fehlermeldung beim Ausführen: Überprüfe, ob die Variablen korrekt deklariert sind und die Schleifen die richtigen Bereiche abdecken.
  • Kopieren funktioniert nicht: Stelle sicher, dass Du den Paste-Befehl nach dem Copy-Befehl hinzufügst, um den Text tatsächlich einzufügen.

    ' Beispiel für das Einfügen
    Sheets("DeinZielSheet").Cells(TargetRow, TargetColumn).PasteSpecial

Alternative Methoden

Falls Du keine Schleife verwenden möchtest, kannst Du auch die Funktion WVERWEIS oder SVERWEIS verwenden, um die Texte basierend auf den Werten in Zeile 1 (Slide) und Zeile 2 (Textbox) zu ermitteln. Diese Funktionen sind besonders nützlich, wenn Du große Datenmengen schnell abgleichen möchtest.


Praktische Beispiele

Angenommen, Du hast folgende Daten:

Slide Textbox Text
1 1 Hallo
1 2 Welt
2 1 Grüße

Wenn Du die Schleife wie im obigen Beispiel anwendest und X auf 2 setzt, wird "Hallo" in die erste Textbox von Slide 1 kopiert, wenn die Bedingungen erfüllt sind.


Tipps für Profis

  • Verwende Option Explicit: Dies zwingt Dich dazu, alle Variablen zu deklarieren und hilft, Fehler zu vermeiden.
  • Debugging: Nutze Debug.Print um Werte zu überprüfen, während das Skript läuft.

    Debug.Print "Slide: " & Cells(i, 1).Value & " Textbox: " & Cells(j, 1).Value

FAQ: Häufige Fragen

1. Wie setze ich die Variable X dynamisch?
Du kannst die Funktion WorksheetFunction.CountIf verwenden, um die Anzahl der Textboxen dynamisch zu zählen:

X = Application.WorksheetFunction.CountIf(Range("A:A"), 1)

2. Kann ich das Skript auf mehreren Slides anwenden?
Ja, passe einfach die äußere Schleife an, um alle benötigten Slides zu durchlaufen.

3. Was mache ich, wenn ich mehr als 3 Buchstaben im Text habe?
Verwende die Funktion LEFT oder MID, um nur einen Teil des Textes zu extrahieren, falls nötig.

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