2017-04-15 3 views
1

Ich habe ein Angebot Arbeitsheft erstellt. Es gibt 8 Blätter mit Produkten auf jeder, QTY/BESCHREIBUNG/UNIT/TOTAL, bauen wir eine Produktauswahl auf jedem Blatt durch die Menge des Elements setzen müssen wir in Spalte A.Excel Zeile hinzufügen, weiter auf

Ich möchte ein Main erstellen Blatt, das die Elemente auf den anderen Blättern nur dann ziehen wird, wenn die QTY nicht 0 ist. Ich habe die grundlegenden Formeln erstellt, so dass, wenn QTY 0 ist, die Zeile leer ist, und wenn nicht, füllt sie die entsprechenden Daten aus. Ich stecke fest.

Grundsätzlich möchte ich die Main Blatt durch die Formel gehen, wie es tut, aber um in der Tabelle weiterzugehen, dann gehen Sie zur nächsten Tabelle (nächstes Blatt) und fahren Sie fort. Ich möchte auch, dass es keine leeren Reihen hat. Ist das möglich?

Aktuelle Code:

Sub delblankrows() 

Dim s1 As Worksheet 
Dim tmpR As Range 
Dim rowcount As Long, colcount As Long, i As Long, j As Long, k As Boolean 

Set s1 = Sheets("Complete") 
Set tmpR = s1.UsedRange 
rowcount = tmpR.Rows.Count 
colcount = tmpR.Columns.Count 

For i = rowcount To 1 Step -1 
    k = 0 
For j = 1 To colcount 
    If tmpR.Value2(i, j) <> "" Then 
     k = 1 
     Exit For 
    End If 
Next j 

End Sub 
+1

Dies ist kein " Code für mich "(oder sogar eine" Code für meine Firma, die zu billig sind, um jemanden zu bezahlen, um dies zu tun ") Website. Bitte beginnen Sie zumindest mit dem Code selbst und dann, wenn Sie bei einem bestimmten Problem stecken bleiben, kommen Sie zurück und stellen Sie eine spezifische Frage, die wir beantworten können - wir helfen Ihnen gerne weiter. – YowE3K

+0

Ich verstehe und ich habe versucht, es selbst zu tun. Ich habe die einzelnen Makros, aber ich kann nicht herausfinden, wie man alles zusammensetzt. Ich möchte nur Hilfe, ich mache das nicht alles für mich. – adams

+0

Wenn Sie einen Teil der Arbeit erledigt haben, geben Sie den Code ein, den Sie entwickelt haben. Auf diese Weise können wir Ihnen helfen, das Problem, das Sie haben, zu beheben. (Das Problem, dass es keinen Code in der Frage gibt, ist, dass es Hunderte von Möglichkeiten gibt, um eine bestimmte Aufgabe zu erfüllen, aber nur einige von ihnen werden leicht in Ihren Code integriert. Wenn wir sehen können, welchen Code Sie schreiben, können wir Beschränke die Vorschläge auf diejenigen, die dir nützlich sein werden.) – YowE3K

Antwort

0

Wenn alles, was Sie versuchen, in Reihen zu ziehen, um zu tun ist (Zellwert und Formeln nicht) von anderen Arbeitsblatt, die einen nicht leeren oder nicht-Null Menge haben (angenommen in Spalte "A" sein), dann wird das folgende tun. Aber von Ihrer Problemstellung aus können Sie auch noch etwas dazu machen. Dieser Code geht davon aus, dass Sie auf jedes Arbeitsblatt eine Kopfzeile haben und dass die Daten in der Zeile beginnt 2. Es geht auch davon aus, dass Sie nur Daten in Spalten „A“ bis „D“:

Option Explicit 

Sub AddRowContinueOn() 
    Dim ws As Worksheet, cws As Worksheet 
    Dim cLRow As Integer, sLRow As Integer 

    Set cws = Worksheets("Complete") 
    cLRow = cws.Cells(cws.Rows.Count, "A").End(xlUp).row + 1 

    Dim i As Integer, val As Integer 
    For Each ws In ActiveWorkbook.Worksheets 
    If ws.Name <> "Complete" Then 
     sLRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).row 
     For i = 2 To sLRow 
     val = CInt(ws.Cells(i, "A").Value) 
     If val <> 0 Then 
      cws.Range("A" & cLRow & ":D" & cLRow).Value = ws.Range("A" & i & ":D" & i).Value 
      cLRow = cLRow + 1 
     End If 
     Next 
    End If 
    Next 

End Sub 
+0

Das funktioniert perfekt. – adams

+0

Das funktioniert fast genau so, wie ich es mir erhofft hatte. Aber ich habe versucht, 2 kleine Verbesserungen zu machen, von denen ich hoffe, dass sie machbar sind. Ich habe eine Weile mit dem Code gespielt, aber ich kann es nicht funktionieren. Zuerst möchte ich das Makro automatisch laufen lassen, wenn irgendeine der QTY-Zellen geändert wird. Zweitens, wenn die QTY wieder auf 0 geändert wird, gibt es eine Möglichkeit, die Zeile aus dem Blatt "Complete" gelöscht zu haben? – adams

Verwandte Themen