Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.04.2024 18:57:33
17.04.2024 16:56:58
Anzeige
Archiv - Navigation
1280to1284
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Fehler bei .Find wenn nichts gefunden wird

Fehler bei .Find wenn nichts gefunden wird
17.10.2012 13:24:56
AcJoker
Hallo,
ich bin grade dabei meine ersten Gehversuche mit VBA zu tätigen.
Folgenden teil Script habe ich geschrieben
Public Sub find()
Dim Start1 As Range
Dim Ende1 As Range
Dim Start2 As Range
Dim Ende2 As Range
Dim Start3 As Range
Dim Ende3 As Range
Dim Start4 As Range
Dim Ende4 As Range
Dim Start5 As Range
Dim Ende5 As Range
Dim Start6 As Range
Dim Ende6 As Range
Set Start1 = Range("A:Z").find("Original Target 1")
Set Ende1 = Range("A:Z").find("Original Target 1", After:=Start1)
Set Start2 = Range("A:Z").find("No. Of Tubes 1")
Set Ende2 = Range("A:Z").find("No. Of Tubes 1", After:=Start2)
Set Start3 = Range("A:Z").find("Fraction Sites 1")
Set Ende3 = Range("A:Z").find("Fraction Sites 1", After:=Start3)
Set Start4 = Range("A:Z").find("No. Of Tubes 2")
Set Ende4 = Range("A:Z").find("No. Of Tubes 2", After:=Start4)
Set Start5 = Range("A:Z").find("No. Of Tubes 3")
Set Ende5 = Range("A:Z").find("No. Of Tubes 3", After:=Start5)
Set Start6 = Range("A:Z").find("No. Of Tubes 4")
Set Ende6 = Range("A:Z").find("No. Of Tubes 4", After:=Start6)
Sheets.Add After:=Sheets(Sheets.Count)
ActiveSheet.Name = "Fraktionen"
Range(Start1, Ende1).Copy
Sheets("Fraktionen").Range("B1").Select
ActiveSheet.Paste
Range(Start2, Ende2).Copy
Sheets("Fraktionen").Range("E1").Select
ActiveSheet.Paste
Range(Start3, Ende3).Copy
Sheets("Fraktionen").Range("D1").Select
ActiveSheet.Paste
Range(Start4, Ende4).Copy
Sheets("Fraktionen").Range("F1").Select
ActiveSheet.Paste
Range(Start5, Ende5).Copy
Sheets("Fraktionen").Range("G1").Select
ActiveSheet.Paste
Range(Start6, Ende6).Copy
Sheets("Fraktionen").Range("H1").Select
ActiveSheet.Paste
Range("C2").Select
ActiveCell.FormulaR1C1 = "=SUM(RC[2]:RC[5])"
Range("C2").Select
Selection.AutoFill Destination:=Range("C2:C97"), Type:=xlFillDefault
Range("C2:C97").Select
Range("C1").Select
ActiveCell.FormulaR1C1 = "No. Of Tubes"
Range("C2").Select
Probem ist nun das wenn .find den Begriff nicht findet die Variable keine Range hat und es bei z.B. Range(Start4, Ende4).Copy dann zum Fehler kommt weil Range "leer" ist.
Wie kann ich diesen Fehler beseitigen so das z.B. nach
Range(Start5, Ende5).Copy
Sheets("Fraktionen").Range("G1").Select
ActiveSheet.Paste
wobei Start5 und Ende5 keinen Wert haben, an einer anderen Stelle des Scripts weiter gemacht macht.
Denn wenn Start5 und Ende5 leer sind, ist auch Start6 und Ende6 leer.
Somit sollte dann im Scipt hier weiter gearbeitet werden.
Range("C2").Select
ActiveCell.FormulaR1C1 = "=SUM(RC[2]:RC[5])"
Range("C2").Select
Selection.AutoFill Destination:=Range("C2:C97"), Type:=xlFillDefault
Range("C2:C97").Select
Range("C1").Select
ActiveCell.FormulaR1C1 = "No. Of Tubes"
Range("C2").Select
Also so in der Art
Public Sub find()
Dim Start1 As Range
Dim Ende1 As Range
Dim Start2 As Range
Dim Ende2 As Range
Dim Start3 As Range
Dim Ende3 As Range
Dim Start4 As Range
Dim Ende4 As Range
Dim Start5 As Range
Dim Ende5 As Range
Dim Start6 As Range
Dim Ende6 As Range
Set Start1 = Range("A:Z").find("Original Target 1")
Set Ende1 = Range("A:Z").find("Original Target 1", After:=Start1)
Set Start2 = Range("A:Z").find("No. Of Tubes 1")
Set Ende2 = Range("A:Z").find("No. Of Tubes 1", After:=Start2)
Set Start3 = Range("A:Z").find("Fraction Sites 1")
Set Ende3 = Range("A:Z").find("Fraction Sites 1", After:=Start3)
Set Start4 = Range("A:Z").find("No. Of Tubes 2")
Set Ende4 = Range("A:Z").find("No. Of Tubes 2", After:=Start4)
Set Start5 = Range("A:Z").find("No. Of Tubes 3")
Set Ende5 = Range("A:Z").find("No. Of Tubes 3", After:=Start5)
Set Start6 = Range("A:Z").find("No. Of Tubes 4")
Set Ende6 = Range("A:Z").find("No. Of Tubes 4", After:=Start6)
Sheets.Add After:=Sheets(Sheets.Count)
ActiveSheet.Name = "Fraktionen"
Range(Start1, Ende1).Copy
Sheets("Fraktionen").Range("B1").Select
ActiveSheet.Paste
Range(Start2, Ende2).Copy
Sheets("Fraktionen").Range("E1").Select
ActiveSheet.Paste
Range(Start3, Ende3).Copy
Sheets("Fraktionen").Range("D1").Select
ActiveSheet.Paste
Range(Start4, Ende4).Copy
Sheets("Fraktionen").Range("F1").Select
ActiveSheet.Paste
Range(Start5, Ende5).Copy
Sheets("Fraktionen").Range("G1").Select
ActiveSheet.Paste
Wenn Start5 & Ende5 leer dann weiter
Range(Start6, Ende6).Copy
Sheets("Fraktionen").Range("H1").Select
ActiveSheet.Paste
ab diesem Punkt
Range("C2").Select
ActiveCell.FormulaR1C1 = "=SUM(RC[2]:RC[5])"
Range("C2").Select
Selection.AutoFill Destination:=Range("C2:C97"), Type:=xlFillDefault
Range("C2:C97").Select
Range("C1").Select
ActiveCell.FormulaR1C1 = "No. Of Tubes"
Range("C2").Select
Könnte man das mit einer If Abfrage machen die vor dem eigentlichen copy Befehl steht und aussagt das wenn StartX & EndeX leer sind dann weiter ab Punkt Y im Script und wenn nicht leer dann weiter im normalen verlauf?
Und dies dann vor jedem Copy Befehl.
Gruß
Joker

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

Betreff
Datum
Anwender
Anzeige
AW: Fehler bei .Find wenn nichts gefunden wird
17.10.2012 14:12:31
Rudi
Hallo,
if not start1 is nothing and not ende1 is nothing then...
Gruß
Rudi

AW: Fehler bei .Find wenn nichts gefunden wird
17.10.2012 15:52:41
AcJoker
Super, hat funktioniert. Danke.
Wieder etwas dazu gelernt
Hatte zwischenzeitlich schon mit If etwas rum probiert aber bei
if start1=not empty then...
oder
if start1=not nothing then...
oder
if start1= "No. Of Tubes 2" then...
oder
if start1=" " then...
immer Fehlermeldungen erhalten.
Anzeige

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige