Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

If Not-Formel

Forumthread: If Not-Formel

If Not-Formel
23.12.2005 08:34:56
Ellen
Hallo,
ich habe ein Problem mit einer If Not-Formel, und zwar möchte ich:
Wenn in Tab SHIPMENT ADMIN NAT (Tabelle wird manuell ausgefüllt) 1 Datensatz ist -> 1 Box Address Label (wie es in Tab Box Address Label bereits ist)
Wenn in Tab SHIPMENT ADMIN NAT 2 Datensätze -> 1. Box Address Label kopieren nach Zeile 62 und Box Number sowie Made in entsprechend ändern.
Wenn 3 Datensätze -> kopieren, ändern
Wenn 4 Datensätze -> kopieren, ändern
....
Ich habe das Makro für 4 Datensätze geschrieben und zwar, dass wenn A11 nicht leer ist, dann mache kopieren, ändern...
Wenn A12 nicht leer ist, dann mache kopieren, ändern....
Wenn A13 nicht leer ist, dann mache kopieren, ändern....
Aber ich habe das Problem, dass das Box Address Label immer kopiert wird, auch wenn A12 und A13 leer sind macht er das. Er ergänzt die Box Nummer nicht, das ist dann ja richtig, aber wieso kopiert er das Label trotzdem immer 4x nach unten?
Am besten hier ansehen:
https://www.herber.de/bbs/user/29510.xls
Code folgendermaßen:

Sub go()
'delete old data
Sheets("Box Address Label").Select
Rows("27:1000").Delete
' If 2 Boxes -> 2nd Box Address Label
Sheets("SHIPMENT ADMIN NAT").Select
If Not Range("A11") Is Nothing Then
Sheets("Box Address Label").Select
Rows("2:24").Copy
Rows("62:62").Select
ActiveSheet.Paste
Worksheets("Box Address Label").Cells(63, 5).Value = Worksheets("SHIPMENT ADMIN NAT").Cells(11, 2).Value
Worksheets("Box Address Label").Cells(68, 6).Value = Worksheets("SHIPMENT ADMIN NAT").Cells(11, 6).Value
End If
' If 3 Boxes -> 3rd Box Address Label
Sheets("SHIPMENT ADMIN NAT").Select
If Not Range("A12") Is Nothing Then
Sheets("Box Address Label").Select
Rows("2:24").Copy
Rows("122:122").Select
ActiveSheet.Paste
Worksheets("Box Address Label").Cells(123, 5).Value = Worksheets("SHIPMENT ADMIN NAT").Cells(12, 2).Value
Worksheets("Box Address Label").Cells(128, 6).Value = Worksheets("SHIPMENT ADMIN NAT").Cells(12, 6).Value
End If
' If 4 Boxes -> 4th Box Address Label
Sheets("SHIPMENT ADMIN NAT").Select
If Not Range("A13") Is Nothing Then
Sheets("Box Address Label").Select
Rows("2:24").Copy
Rows("182:182").Select
ActiveSheet.Paste
Worksheets("Box Address Label").Cells(183, 5).Value = Worksheets("SHIPMENT ADMIN NAT").Cells(13, 2).Value
Worksheets("Box Address Label").Cells(188, 6).Value = Worksheets("SHIPMENT ADMIN NAT").Cells(13, 6).Value
End If
Range("A1").Select
Application.CutCopyMode = False
End Sub

Anzeige

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

Betreff
Datum
Anwender
Anzeige
Fehler gefunden
23.12.2005 08:59:49
Ellen
Hallo,
mein Problem könnt ihr vergessen, hab den Fehler selbst gefunden:

Sub go()
If Not Range("A13") Is Nothing Then
End Sub

ändern in:

Sub go()
If Not Range("A13") = "" Then
End Sub

So funktioniert's ;-)
Aber weshalb versteh ich nicht ganz.
Gruß,
Ellen
Anzeige
AW: Fehler gefunden
23.12.2005 13:27:01
Matthias
Hallo Ellen,
Aber weshalb versteh ich nicht ganz.
Weil ein Zellbereich selbst eben nie den Wert "Nothing" annehmen kann, sondern nur Objektvariablen, die nicht zugewiesen sind:

Dim rng As Range
If rng Is nothing Then MsgBox "1. Nothing!"
Set rng = Range("A1")
If rng Is nothing Then MsgBox "2. Nothing!"

Gruß Matthias
Anzeige
AW: Fehler gefunden
23.12.2005 13:29:25
Ellen
Danke Matthias, wieder was gelernt :-)
Gruß,
Ellen
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken

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