2017-05-23 2 views
0

Ich habe die Excel-Formel unten, um Daten von einem anderen Blatt zu ziehen.VBA gehe zur nächsten Zeile und ziehe die Formel von oben, nachdem die Daten eingegeben wurden

= IF (ISNUMBER (SEARCH ("Ja", Sheet7! C4)), Sheet7! A4, "")

Diese Zellen verwendet, C4 und A4, bleibt immer gleich. Verschiedene Artikelnummern werden nacheinander eingescannt, so dass sich die Werte in den Zellen ändern.

Wenn das Wort Yes in C4 angezeigt wird, möchte ich, dass das Element # in A4 in das neue Blatt aufgenommen wird. Diese Formel funktioniert gut dafür.

Nachdem jedoch das Element # im neuen Blatt aufgezeichnet wurde, möchte ich, dass es in die nächste Zeile geht und die Formel kopiert, damit das nächste # gescannte Objekt aufgezeichnet werden kann.

Ist diese VBA möglich? Danke!

+0

die Artikel # in Excel gescannt wird ändern. Sobald die nächste Artikelnummer gescannt ist, möchte ich, dass sie in das neue Blatt zieht. Dann wird ein weiterer Artikel # in Excel gescannt und ich möchte, dass diese Nummer zur nächsten Zeile im Blatt hinzugefügt wird. Am Ende bilden Sie eine Liste von Artikeln, die zum "Ja" -Wert – lstrick

Antwort

0

Ich glaube, Sie versuchen, so etwas wie

If Worksheets("Sheet7").Range("C4").Value Like "*Yes*" Then 
    ActiveCell.Value = Worksheets("Sheet7").Range("A4").Value 
Else 
    ActiveCell.Value = "" 
End If 

zu bekommen, aber nicht verwenden ActiveCell - eine richtige Verweis auf die Zelle verwenden, in dem Sie den Wert setzen möchten. (Ihre Frage enthält nicht genügend Informationen, um festzustellen, was die Lage ist, weshalb ich gezwungen war, ebenso wie ActiveCell darauf zu verweisen.)


auf Kommentare Basierend, es klingt wie Sie die folgenden Worksheet_Change wollen Ereignis in Worksheets("Sheet7"):

Private Sub Worksheet_Change(ByVal Target As Range) 
    If Target.Cells.Count <> 1 Then 
     Exit Sub 
    End If 
    If Intersect(Range("A4"), Target) Is Nothing Then 
     Exit Sub 
    End If 
    If Range("C4").Value Like "*Yes*" Then 
     With Worksheets("Sheet1") 
      .Cells(.Rows.Count, "A").End(xlUp).Offset(1, 0).Value = Target.Value 
     End With 
    End If 
End Sub 
+0

führten. Das Zielblatt ist Blatt1. Ich muss es jedes Mal ziehen, wenn eine neue Artikelnummer gescannt wird. Also würde es bei A1 beginnen, dann würde die nächste gescannte Artikelnummer zu A2 gehen usw. – lstrick

+0

Was meinen Sie mit "eine neue Artikelnummer wird gescannt"? Meinst du jemand (oder etwas) (oder irgendein Code) gibt irgendwo Daten ein? Wenn ja, wo? Wie erkennst du, wann der "Scan" stattgefunden hat? Wird ein 'Worksheet_Change'-Ereignis ausgelöst, um' Sheet1! A? 'Zum richtigen Zeitpunkt zu aktualisieren? – YowE3K

+0

Daten werden in A4 eingegeben. Das ist die einzige Zelle, die berührt wird. Diese Daten werden von einem anderen Blatt abgerufen und liefern entweder eine Ja- oder Nein-Antwort. Nach was ich suche, ist ein Weg, alle jene Einzelteilnummern aufzulisten, die eine Jaantwort liefern – lstrick

Verwandte Themen