Microsoft Excel

Herbers Excel/VBA-Archiv

Hilfe Erweiterung Überprüfung im Code

Betrifft: Hilfe Erweiterung Überprüfung im Code von: Mani
Geschrieben am: 10.10.2020 19:18:51

Guten Abend,
ich bräuchte noch mal eure Hilfe.
Ich habe folgenden Code um Daten einzufügen:

Sub Einfügen()
Dim Q_x&, Z_X&, wksQ As Worksheet, wksZ As Worksheet
Dim MyRow&, MyCol&, x&
Dim Artikel$, Menge&, Woche$ 'hier ist Artikel als String deklariert

Set wksQ = ThisWorkbook.Worksheets("start")
Set wksZ = ThisWorkbook.Worksheets("ziel")

For Q_x = 2 To 20 'Schleife Zellen 2-20 aus "Start" in Spalte(A)
 If wksQ.Cells(Q_x, 4) = "x" Then 'wenn in Spalte(D) ein x steht Variabeln mit Inhalt füllen
    Artikel = wksQ.Cells(Q_x, 1)  'aus Spalte(A)
      Menge = wksQ.Cells(Q_x, 2)  'aus Spalte(B)
      Woche = wksQ.Cells(Q_x, 3)  'aus Spalte(C)
       For Z_X = 3 To 10 'Artikel suchen
         If wksZ.Cells(Z_X, 1) = Artikel Then
            MyRow = Z_X 'Zeile merken
             For x = 2 To 54 'Woche suchen
              If wksZ.Cells(2, x) = Woche Then
                 MyCol = x
                 wksZ.Cells(MyRow, MyCol) = wksZ.Cells(MyRow, MyCol) = Menge
              End If
             Next
         End If
       Next
 End If
Next

End Sub

Ich müsste jetzt noch eine Überprüfung einbauen .
Wenn in der Zieltabelle schon ein Wert steht soll dieser nicht überschrieben werden .
Allerdings habe ich keine Ahnung wie ich das anstellen soll.
Könntet ihr mir nochmal helfen?

Vielen Dank

Gruß der Manni

Betrifft: AW: Hilfe Erweiterung Überprüfung im Code
von: Hajo_Zi
Geschrieben am: 10.10.2020 19:29:38

Hallo Manni

If wksZ.Cells(2, x) = "" Then
If wksZ.Cells(2, x) = Woche Then

Zu Deiner Datei kann ich nichts schreiben, was wohl daran liegt das ich nicht auf fremde Rechner schaue.Ich baue keine Datei nach.

Sollte die Datei verlinkt werden?

Wenn du an Stelle einer Demomappe deine Originalmappe hochladen willst, diese aber sensible Daten enthält, kannst du diese Daten
http://www.ms-office-forum.de/forum/showthread.php?t=322895
änderrn.

Bilder lade ich mir nicht runter, da Excel damit nichts anfangen kann.

http://www.excel-ist-sexy.de/bilder-statt-datei/

Hochgeladene Bilder können zwar als solche in Excel importiert werden, sind jedoch bei der Lösung von Problemen nicht sehr hilfreich, da man die eigentlichen Daten nicht ohne große und zeitraubende Umwege direkt in die Tabelle übertragen kann.

Das ist nur meine Meinung zu dem Thema.


GrußformelHomepage

Betrifft: AW: Hilfe Erweiterung Überprüfung im Code
von: Mani
Geschrieben am: 10.10.2020 19:56:48

Hallo Hajo ,

schonmal ein dickes Dankeschön...
Sobald ich zu Hause bin werde ich es ausprobieren

Gruß aus Hamburg,
der Manni

Betrifft: AW: Hilfe Erweiterung Überprüfung im Code
von: Mani
Geschrieben am: 11.10.2020 13:01:53

Hallo ,

ich habe irgendwie noch ein Fehler drin.
Nach Hajo's Vorschlag habe ich es jetzt so geändert:
Sub Einfügen()
 Dim Q_x&, Z_X&, wksQ As Worksheet, wksZ As Worksheet
 Dim MyRow&, MyCol&, x&
 Dim Artikel$, Menge&, Woche$ 'hier ist Artikel als String deklariert
 
 Set wksQ = ThisWorkbook.Worksheets("start")
 Set wksZ = ThisWorkbook.Worksheets("ziel")
 
 For Q_x = 2 To 20 'Schleife Zellen 2-20 aus "Start" in Spalte(A)
  If wksQ.Cells(Q_x, 4) = "x" Then 'wenn in Spalte(D) ein x steht Variabeln mit Inhalt füllen
     Artikel = wksQ.Cells(Q_x, 1)  'aus Spalte(A)
       Menge = wksQ.Cells(Q_x, 2)  'aus Spalte(B)
       Woche = wksQ.Cells(Q_x, 3)  'aus Spalte(C)
        For Z_X = 3 To 10 'Artikel suchen
          If wksZ.Cells(Z_X, 1) = Artikel Then
             MyRow = Z_X 'Zeile merken
              For x = 2 To 54 'Woche suchen
               If wksZ.Cells(2, x) = "" Then
               If wksZ.Cells(2, x) = Woche Then
                  MyCol = x
                  wksZ.Cells(MyRow, MyCol) = wksZ.Cells(MyRow, MyCol) = Menge
               End If
               End If
              Next
          End If
        Next
  End If
 Next
 
 End Sub

Jetzt werden mir gar keine Daten übertragen.
Kann mir einer helfen was ich falsch gemacht habe ?

Vielen Dank
Gruß der Manni

Betrifft: AW: Hilfe Erweiterung Überprüfung im Code
von: ralf_b
Geschrieben am: 11.10.2020 13:37:31

If wksZ.Cells(2, x) = "" überprüft nicht die Zielzelle oder, sondern die Zelle wo die Wochennummer drinsteht. Und die ist ja nicht leer.

Betrifft: AW: Hilfe Erweiterung Überprüfung im Code
von: Mani
Geschrieben am: 11.10.2020 13:42:00

Hallo Ralf ,
ja jetzt wo du es sagst ....
Ich finde nur keinen Ansatz wie ich die Zielzelle auf leer überprüfe.
Das überfordert gerade mein jetziges können.
Könnte ihr mir dabei helfen ?

Danke
Gruß der Manni

Betrifft: AW: Hilfe Erweiterung Überprüfung im Code
von: ralf_b
Geschrieben am: 11.10.2020 13:57:45

MyCol = x
wksZ.Cells(MyRow, MyCol)

MYcol = x d.h. MYcol ist bereits über der Prüfung bekannt

nimm diese Prüfung
If wksZ.Cells(MyRow, x) = "" Then

Betrifft: AW: Hilfe Erweiterung Überprüfung im Code
von: Mani
Geschrieben am: 11.10.2020 14:11:23

Vielen Dank
Gruß der Manni

Betrifft: gern geschehen owT
von: ralf_b
Geschrieben am: 11.10.2020 14:12:43