Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema InputBox
BildScreenshot zu InputBox InputBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Laufzeitfehler 1004

Betrifft: Laufzeitfehler 1004 von: Fabienne
Geschrieben am: 27.08.2004 11:43:27

Hallo zusammen!

Ich habe ein Makro Comp(), welches ein Makro Riinforced_pläi()in einem anderen Modul des selben Files aufruft. Jetzt krieg ich aber immer einen Laufzeitfehler 1004 in Zeile 1 des Subs Riinforced_pläi?

Kann mir jemand helfen den wegzubringen? Vielen Dank schon mal!




Sub Comp()

  'Dateiname_ausgeben()'
  Meine_Datei = InputBox("Bitte geben sie den Dateinamen (ohne Endung) der zu verarbeitenden Excel 

Datei an. Sie muss bereits geöffnet sein.", "Dateieingabe")
  Meine_Datei = Meine_Datei & ".xls"
  MsgBox Meine_Datei, , "zu verarbeitende Datei:"
 
  'Tabellenblaetter_zählen()'


  Windows(Meine_Datei).Activate
  Dim i As Integer
  Dim max As Integer
  max = Worksheets.Count
  
  MsgBox "Anzahl Tabellenblätter:" & max
  'max = 1

  
  'Makroname_ausgeben()'
  Mein_Export = InputBox("Name der Exportdatei (ohne Endung) .", "Dateieingabe")
  Mein_Export = Mein_Export & ".xls"
  MsgBox Mein_Export, , "Exportiert wird in:"
 
  'Excel Datei mit dem Namen Mein_Export und einem Sheet erstellen
   Workbooks.Add
   ActiveWorkbook.SaveAs Filename:=Mein_Export
   ActiveWorkbook.Save
    
  'For i = 1 To Worksheets.Count
  For i = 2 To max
  
  'Quell Tabellenblatt auswählen()'
  Windows(Meine_Datei).Activate
  Mein_Blatt = Worksheets(i).Name
  'MsgBox Mein_Blatt, , "Name des Blatts:"
  
  Worksheets(2).Activate
  
  Range("A1").Select
  Phys = ActiveCell.Value
  Select Case Phys
  
  Case Is = "REINFORCED PLY"
  Call Riinforsd_pläi
  
  Case Is = "HOMOGENEOUS PLY"
  Call Homogeneous_Ply
  
  Case Is = "ADHESIVE"
  Call Adhesive
  
  Case Art = "CORE PLY, HONEYCOMB"
  Call CorePlyhoneycomb
  
  Case Art = "CORE PLY, HOMOGENEOUS"
  Call CorePlyHomogeneous
   
End Select


Windows(Mein_Export).Activate
  Worksheets(1).Activate
  
   
Next i
    

End Sub















Sub Riinforsd_pläi()

 Range("A" & (i - 1) * 140 + 1).Select
    ActiveCell.FormulaR1C1 = "name="
    Range("B" & (i - 1) * 140 + 1).Select
    ActiveCell.FormulaR1C1 = "imported ply nr. " & i - 1
    
    Range("A" & (i - 1) * 140 + 2).Select
    ActiveCell.FormulaR1C1 = "phys="
    Range("B" & (i - 1) * 140 + 2).Select
    ActiveCell.FormulaR1C1 = "reinforced" '!!!!!!!!!!!!!!!!!!!!!!!
   
    
    Range("A" & (i - 1) * 140 + 3).Select
    ActiveCell.FormulaR1C1 = "mech="
    'Range("B" & (i - 1) * 140 + 3).Select
    'ActiveCell.FormulaR1C1 = "=VLOOKUP('[" & Meine_Datei & "]" & Mein_Blatt & "'!R33C4,'[" &      

    Meine_Datei & "]" & Mein_Blatt & "'!R33C11:R36C12,2)"
       
       
    Windows(Meine_Datei).Activate
    Range("D23").Select
    Mechart = ActiveCell.Value
    Select Case Mechart
    Case Is = 1
    Windows(Mein_Export).Activate
    Range("B" & (i - 1) * 140 + 3).Select
    ActiveCell.FormulaR1C1 = "orthotropic"
    Case Is = 2
    Windows(Mein_Export).Activate
    Range("B" & (i - 1) * 140 + 3).Select
    ActiveCell.FormulaR1C1 = "transv23"
    Case Is = 3
    Windows(Mein_Export).Activate
    Range("B" & (i - 1) * 140 + 3).Select
    ActiveCell.FormulaR1C1 = "transv12"
    Case Is = 4
    Windows(Mein_Export).Activate
    Range("B" & (i - 1) * 140 + 3).Select
    ActiveCell.FormulaR1C1 = "isotropic"
    End Select
  

etc..........


  


Betrifft: AW: Laufzeitfehler 1004 von: P@ulchen
Geschrieben am: 27.08.2004 12:01:18

Hi Fabienne,

ohne getestet zu haben... schreib mal:

Public i As Integer

Sub Comp()
.
.
.



Gruß aus Leipzig
P@ulchen

Das Forum lebt auch von den Rückmeldungen !


  


Betrifft: AW: Laufzeitfehler 1004 von: Fabienne
Geschrieben am: 27.08.2004 12:09:04

Salut P@ulchen!

Merci für deine Hilfe, aber es tritt immer noch derselbe Fehler auf:

Laufzeitfehler 1004
Die Methode 'Range' für das Objekt '_Global' ist fehlgeschlagen

Andere Ideen?


  


Betrifft: AW: Laufzeitfehler 1004 von: P@ulchen
Geschrieben am: 27.08.2004 12:17:18

Hi Fabienne,

ich habe den Code mal vereinfacht nachgebaut, und er funktioniert bei mir ohne Probleme:



Public As Integer

Sub Comp()
For i = 2 To Worksheets.Count
    Riinforsd_pläi
Next
End Sub

Sub Riinforsd_pläi()
Range("A" & (i - 1) * 140 + 1).Select
ActiveCell.FormulaR1C1 = "name="
Range("B" & (i - 1) * 140 + 1).Select
ActiveCell.FormulaR1C1 = "imported ply nr. " & i - 1
End Sub

     Code eingefügt mit Syntaxhighlighter 2.5



Gruß aus Leipzig
P@ulchen

Das Forum lebt auch von den Rückmeldungen !


  


Betrifft: Funktioniert immer noch nicht! von: Fabienne
Geschrieben am: 27.08.2004 12:33:21

Ich habs bei mir auch laufen lassen, aber es kommt immer noch dieselbe Fehlermeldung. Und zwar in Zeile 8 [Range("A" & (i - 1) * 140 + 1).Select].
Kann das mit der excel Version zu tun haben? Ich hab 2000.


  


Betrifft: AW: Funktioniert immer noch nicht! von: P@ulchen
Geschrieben am: 27.08.2004 12:39:56

Ich habe auch 2000...

Öffne mal eine neue ExcelDatei mit zB. 3 Blättern, kopiere nur den von mir geposteten Code rein und schau mal, ob er läuft.



Public As Integer

Sub Comp()
For i = 2 To Worksheets.Count
    Riinforsd_pläi
Next
End Sub

Sub Riinforsd_pläi()
Range("A" & (i - 1) * 140 + 1).Select
ActiveCell.FormulaR1C1 = "name="
Range("B" & (i - 1) * 140 + 1).Select
ActiveCell.FormulaR1C1 = "imported ply nr. " & i - 1
End Sub

     Code eingefügt mit Syntaxhighlighter 2.5




Gruß aus Leipzig
P@ulchen

Das Forum lebt auch von den Rückmeldungen !


  


Betrifft: AW: Funktioniert immer noch nicht! von: Fabienne
Geschrieben am: 27.08.2004 12:47:59

Wenn ich in Einzelschritten durchgehe klappt alles, wenn ich aber bis zum Ende ausführe, kommt immer noch dieselbe Fehlermeldung.

Verstehe absolut gar nichts mehr!


  


Betrifft: AW: Laufzeitfehler 1004 von: P@ulchen
Geschrieben am: 27.08.2004 13:00:51

Wo hast Du den Code denn stehen ?


  


Betrifft: AW: Laufzeitfehler 1004 von: Fabienne
Geschrieben am: 27.08.2004 14:13:20

sorry, verstehe deine Frage nicht?!


  


Betrifft: AW: Laufzeitfehler 1004 von: Fabienne
Geschrieben am: 27.08.2004 14:14:29

sorry, verstehe deine Frage nicht?!


  


Betrifft: AW: Laufzeitfehler 1004 von: P@ulchen
Geschrieben am: 27.08.2004 14:26:55

in welchem Modul steht welcher Code ?
Du hast in Deiner ersten Frage von einem anderen Modul gesprochen...


  


Betrifft: AW: Laufzeitfehler 1004 von: Fabienne
Geschrieben am: 27.08.2004 14:36:35

Also ich habe 6 verschiedene Module. Im ersten ist das Hauptmakro und in den 5 anderen sind die Untermakros 1)Riinforsd_pläi 2)Homogeneous_Ply 3)Adhesive 4)CorePlyhoneycomb 5)CorePlyHomogeneous

Hauptmakro:

Sub Comp()

  'Dateiname_ausgeben()'
  Meine_Datei = InputBox("Bitte geben sie den Dateinamen (ohne Endung) der zu verarbeitenden Excel Datei an. Sie muss bereits geöffnet sein.", "Dateieingabe")
  Meine_Datei = Meine_Datei & ".xls"
  MsgBox Meine_Datei, , "zu verarbeitende Datei:"
 
  'Tabellenblaetter_zählen()'


  Windows(Meine_Datei).Activate
  Dim i As Integer
  Dim max As Integer
  max = Worksheets.Count
  
  MsgBox "Anzahl Tabellenblätter:" & max
  'max = 1

  
  'Makroname_ausgeben()'
  Mein_Export = InputBox("Name der Exportdatei (ohne Endung) .", "Dateieingabe")
  Mein_Export = Mein_Export & ".xls"
  MsgBox Mein_Export, , "Exportiert wird in:"
 
  'Excel Datei mit dem Namen Mein_Export und einem Sheet erstellen
   Workbooks.Add
   ActiveWorkbook.SaveAs Filename:=Mein_Export
   ActiveWorkbook.Save
    
  'For i = 1 To Worksheets.Count
  For i = 2 To max
  
  'Quell Tabellenblatt auswählen()'
  Windows(Meine_Datei).Activate
  Mein_Blatt = Worksheets(i).Name
  'MsgBox Mein_Blatt, , "Name des Blatts:"
  
  Worksheets(2).Activate
  
  Range("A1").Select
  Phys = ActiveCell.Value
  Select Case Phys
  
  Case Is = "REINFORCED PLY"
  Call Riinforsd_pläi
  
  Case Is = "HOMOGENEOUS PLY"
  Call Homogeneous_Ply
  
  Case Is = "ADHESIVE"
  Call Adhesive
  
  Case Art = "CORE PLY, HONEYCOMB"
  Call CorePlyhoneycomb
  
  Case Art = "CORE PLY, HOMOGENEOUS"
  Call CorePlyHomogeneous
   
End Select


Windows(Mein_Export).Activate
  Worksheets(1).Activate
  
   
Next i
    

End Sub



  


Betrifft: AW: Laufzeitfehler 1004 von: P@ulchen
Geschrieben am: 27.08.2004 14:59:31

Hi Fabienne,

ich denke nach wie vor, dass Dein Fehler in der Variablendeklaration von "i" steckt.

Du hast im Hauptmakro folgendes stehen:

Windows(Meine_Datei).Activate
Dim i As Integer

Da Du i innerhalb der Sub deklariert hast, bleibt Dir der zugewiesene Wert von i auch nur innerhalb der Sub erhalten.
Du möchtest aber mit i in einer anderen Sub arbeiten.
Würde diese zweite Sub im gleichen Modul stehen, könntest Du ganz oben, also außerhalb aller Sub´s des Modules schreiben:

Dim i As Integer

Sub Comp()
.
.
.

Dann könntest Du im Modul von einer Sub zur anderen springen und den Wert von i immer mithehmen.

Da Deine Sub´s aber in unterschiedlichen Modulen stehen, mußt Du i als Public-Variable deklarieren, also so:

Public i As Integer

Sub Comp()
.
.
.


Ich hoffe, dass ich mich halbwegs verständlich machen konnte...



Gruß aus Leipzig
P@ulchen

Das Forum lebt auch von den Rückmeldungen !


  


Betrifft: AW: Laufzeitfehler 1004 von: Fabienne
Geschrieben am: 27.08.2004 16:00:56

Hab's jetzt endlich geschafft!!!!!! Jupiiiiiii!!!

Möchte mich ganz herzlich bei dir bedanken!!!!

Viele Grüsse Fabienne


  


Betrifft: AW: Laufzeitfehler 1004 von: P@ulchen
Geschrieben am: 27.08.2004 16:03:53

Lag es denn an "i" ? Wenn ja, dann schau noch mal in meine allererste Antwort ;-))

Freut mich aber, wenn ich Dir helfen konnte und

Schönes Wochenende



Gruß aus Leipzig
P@ulchen

Das Forum lebt auch von den Rückmeldungen !


 

Beiträge aus den Excel-Beispielen zum Thema "Laufzeitfehler 1004"