Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
604to608
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
604to608
604to608
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

VB Doppelter Codeaufruf??

VB Doppelter Codeaufruf?
03.05.2005 10:13:54
Slugger
Hallo,
folgendes Problem: Ich lasse in Tabellenblatt "Stammdaten" einen CommandButton vom Tabellenblatt1 aufrufen.
'Stammdaten

Private Sub CommandButton2_Click()
Worksheets("Berechnung").Select
Application.Run "Tabelle1.CommandButton1_Click()"
End Sub

'Tabelle1

Private Sub CommandButton1_Click() 'Dateien überprüfen
MsgBox "Dieser Vorgang wird ca. 45 Minuten in Anspruch nehmen", vbInformation
Columns("A:D").Select
Range("D1").Activate
Selection.EntireColumn.Hidden = False
Dim i As Long
Dim datei As String
Range("a6:c20000").ClearContents
With Application.FileSearch
.LookIn = "H:\FT13\Artikeldatenbank\Saison"
.SearchSubFolders = True
.Filename = "*.xls"
If .Execute() > 0 Then
For i = 1 To .FoundFiles.Count
Sheets("Berechnung").Cells(65536, 3).End(xlUp).Offset(5, 0) = Left(.FoundFiles(i), InStrRev(.FoundFiles(i), "\") + 0)
Sheets("Berechnung").Cells(65536, 2).End(xlUp).Offset(5, 0) = Mid(.FoundFiles(i), InStrRev(.FoundFiles(i), "\") + 1)
Next i
End If
End With
Columns("A:A").Select
Selection.NumberFormat = "@"
Range("b6").Select
Do Until ActiveCell.Value = ""
ActiveCell.Offset(0, -1).Value = "='"
ActiveCell.Offset(5, 0).Select
Loop
Range("B6").Select
Columns("A:D").Select
Range("D1").Activate
Selection.EntireColumn.Hidden = True
MsgBox "Fertig", vbInformation
End Sub

Komischerweise macht VB diese Prozedur doppelt. keine Ahnung woran das liegt. Der Code vom Tabellenblatt1 habe ich schon oft getestet und der funktioniert.
Nun stelle ich mir die Frage ob ich mit dem Befehl vom Stammdatenblatt (siehe oben Application.Run) etwas falsch gemacht habe.
Wenn hier jemand Rat weiß.... PS. Ich habe es auch mit der Call Anweisung probiert (also anstatt Application.Run) bekomme aber immer nur einen "Stapeldatei" -Fehler.
Gruß
Slugger

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VB Doppelter Codeaufruf?
03.05.2005 10:50:45
Heiko
Hallo
lass mal die Klammern weg.
Application.Run "Tabelle1.CommandButton1_Click"
Gruß Heiko

PS: Rückmeldung wäre nett !
Danke
03.05.2005 10:57:14
Slugger
Hallo,
du bist halt soooooo VB ;-) Vielen, vielen Dank, jetzt geht´s endlich so wie´s gehen soll.
Gruß
Slugger
AW: VB Doppelter Codeaufruf?
03.05.2005 11:13:16
Heiko
Hallo
nur mal so als Tipp, damit es keine 45 Minuten dauert um ein paar Dateien einzulesen.
Und auf Select sollte man soweit wie möglich auch verzichten, auch wenn es der Makrorekorder vorgibt.

Private Sub CommandButton1_Click() 'Dateien überprüfen
MsgBox "Dieser Vorgang wird ca. 45 Minuten in Anspruch nehmen", vbInformation
Application.Screenupdating = False
Application.Calculation = xlCalculationManual
Columns("A:D").Select
Range("D1").Activate
Selection.EntireColumn.Hidden = False
Dim i As Long
Dim datei As String
Range("a6:c20000").ClearContents
With Application.FileSearch
.LookIn = "H:\FT13\Artikeldatenbank\Saison"
.SearchSubFolders = True
.Filename = "*.xls"
If .Execute() > 0 Then
For i = 1 To .FoundFiles.Count
Sheets("Berechnung").Cells(65536, 3).End(xlUp).Offset(5, 0) = Left(.FoundFiles(i), InStrRev(.FoundFiles(i), "\") + 0)
Sheets("Berechnung").Cells(65536, 2).End(xlUp).Offset(5, 0) = Mid(.FoundFiles(i), InStrRev(.FoundFiles(i), "\") + 1)
Next i
End If
End With
Columns("A:A").Select
Selection.NumberFormat = "@"
Range("b6").Select
Do Until ActiveCell.Value = ""
ActiveCell.Offset(0, -1).Value = "='"
ActiveCell.Offset(5, 0).Select
Loop
Range("B6").Select
Columns("A:D").Select
Range("D1").Activate
Selection.EntireColumn.Hidden = True
Application.Screenupdating = True
Application.Calculation = xlCalculationAutomatic
Application.Calculate
MsgBox "Fertig", vbInformation
End Sub

Gruß Heiko

PS: Rückmeldung wäre nett !
Anzeige
AW: VB Doppelter Codeaufruf?
03.05.2005 11:30:46
Slugger
Hallo,
die 45 Minuten beziehen sich auch noch auf einen anderen Code. Ich wollte verschiedene
prozeduren nacheinander ablaufen lassen und die Gesamtzeit ist 45 Minuten. Diese eine, wie oben aufgeführt dauert ca. 1 Minute.
Aber trotzdem vielen dank für deinen Vorschlag
Viele Grüße und einen schönen Tag noch
Slugger

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige