Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1596to1600
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

Code durchführen ohne Seiten zu öffnen

Code durchführen ohne Seiten zu öffnen
02.01.2018 09:30:55
Burak
Guten Morgen und frohes neues Jahr,
ich würde gerne folgenden Code durchführen ohne die Sheets jeweils zu öffnen (um es performanter zu machen):
Dim enddatum As Date
Private Sub CommandButton1_Click()
Dim ws As Worksheet
Dim importdatei
Dim pfad1 As String
Dim pfad2 As String
Dim barcode As String
Dim zeilen As Long
Dim startdatum As Date
Dim startdatum2 As String
Dim enddatum2 As String
Dim starttag As String
Dim startmonat As String
Dim startjahr As String
Dim endtag As String
Dim endmonat As String
Dim endjahr As String
Dim Zeilenzahl As Long
Dim tage As Integer
Dim i As Long
Dim k As Long
'Von-Datum
If Me.TextBox1.Value  "" Then
If Not IsDate(Me.TextBox1.Value) Then
MsgBox "Sie müssen ein Startdatum erfassen (dd.mm.yyyy) oder " & _
"per Klick aus dem Kalender auswählen.", _
48, "   Hinweis für " & Application.UserName
With Me.TextBox1
.SetFocus
.SelStart = 0
.SelLength = Len(.Text)
End With
Exit Sub
End If
Else
MsgBox "Sie müssen ein Startdatum erfassen (dd.mm.yyyy) oder " & _
"per Klick aus dem Kalender auswählen.", _
48, "   Hinweis für " & Application.UserName
Me.TextBox1.SetFocus
Exit Sub
End If
'Bis-Datum
If Me.TextBox2  "" Then
If Not IsNumeric(Me.TextBox2.Value) Then
MsgBox "Sie müssen ein Enddatum erfassen (dd.mm.yyyy) oder " & _
"per Klick aus dem Kalender auswählen.", _
48, "   Hinweis für " & Application.UserName
With Me.TextBox2
.SetFocus
.SelStart = 0
.SelLength = Len(.Text)
End With
Exit Sub
End If
Else
MsgBox "Sie müssen ein Enddatum erfassen (dd.mm.yyyy) oder " & _
"per Klick aus dem Kalender auswählen.", _
48, "   Hinweis für " & Application.UserName
Me.TextBox2.SetFocus
Exit Sub
End If
'Import für Pfadermittlung
importdatei = Application.GetOpenFilename
Do Until importdatei  "Falsch"
importdatei = Application.GetOpenFilename
Loop
pfad1 = Left(importdatei, InStrRev(importdatei, "_") - 3)
pfad2 = Right(importdatei, 15)
'Start- und Enddatum aus TextBoxen auslesen
startdatum = Me.TextBox1.Value
enddatum = Me.TextBox2.Value
startjahr = Right(startdatum, 4)
startmonat = Mid(startdatum, 4, 2)
starttag = Left(startdatum, 2)
startdatum2 = startjahr & startmonat & starttag
tage = enddatum - startdatum
'Alle Tabellenblätter clearen
For i = 2 To Worksheets.Count
With Worksheets(i)
.Cells.Clear
If .ChartObjects.Count > 0 Then
.ChartObjects.Delete
End If
End With
Next
'Import anhand Datum
For i = tage To 0 Step -1
enddatum = enddatum - i
hilfsvariableend = Left(enddatum, 5)
endjahr = Right(enddatum, 4)
endmonat = Mid(enddatum, 4, 2)
endtag = Left(enddatum, 2)
enddatum2 = endjahr & endmonat & endtag
'1-4
For k = 1 To 4
'Import einer leeren Datei
If FileLen(pfad1 & k & "'_'" & enddatum2 & "'.csv") = 0 Then
Set ws = ActiveWorkbook.Sheets("R" & k)
Worksheets("R" & k).Activate
Call nodata
'Import einer nicht leeren Datei
Else
Set ws = ActiveWorkbook.Sheets("R" & k)
Worksheets("R" & k).Activate
Range("B1").Select
Zeilenzahl = Selection.CurrentRegion.Rows.Count
With ws.QueryTables.Add(Connection:="TEXT;" & pfad1 & k & "'_'" & enddatum2 & "' _
_
.csv", Destination:=ws.Range("B" & Zeilenzahl + 1))
.TextFileParseType = xlDelimited
.TextFileCommaDelimiter = True
.Refresh
End With
End If
Next
'6
'Import einer leeren Datei
If FileLen(pfad1 & "6'_'" & enddatum2 & "'.csv") = 0 Then
Set ws = ActiveWorkbook.Sheets("R5")
Worksheets("R5").Activate
Call nodata
'Import einer nicht leeren Datei
Else
Set ws = ActiveWorkbook.Sheets("R5")
Worksheets("R5").Activate
Range("B1").Select
Zeilenzahl = Selection.CurrentRegion.Rows.Count
With ws.QueryTables.Add(Connection:="TEXT;" & pfad1 & "6'_'" & enddatum2 & "'.csv",  _
_
Destination:=ws.Range("B" & Zeilenzahl + 1))
.TextFileParseType = xlDelimited
.TextFileCommaDelimiter = True
.Refresh
End With
End If
enddatum = enddatum + i
Next
'Formatierung sämtlicher Arbeitsblätter
For i = 2 To 6
Worksheets(i).Activate
Application.DisplayAlerts = True
zeilen = Cells(Rows.Count, 2).End(xlUp).Row
Range("A1").Value = "Barcode"
Columns("A:A").ColumnWidth = 9.71
Range("B1").Value = "Masterbarcode"
Columns("B:B").ColumnWidth = 15.57
Range("C1").Value = "anzPanel"
Columns("C:C").ColumnWidth = 10.29
Range("D1").Value = "DatumREHM"
Columns("D:D").ColumnWidth = 14.43
Range("E1").Value = "DiffTsec_zu_ECU_vorher"
Columns("E:E").ColumnWidth = 24
Range("F1").Value = "Schicht"
Columns("F:F").ColumnWidth = 8.57
Range("G1").Value = "BTname"
Columns("G:G").ColumnWidth = 9.43
Range("H1").Value = "irepcode"
Columns("H:H").ColumnWidth = 10.14
Range("I1").Value = "crepcode"
Columns("I:I").ColumnWidth = 38.86
Range("J1").Value = "PIN"
Columns("J:J").ColumnWidth = 5.43
Range("K1").Value = "AnalyseTyp"
Columns("K:K").ColumnWidth = 12.43
Range("L1").Value = "LIBname"
Columns("L:L").ColumnWidth = 18.86
Range("A1:L1").Font.Bold = True
For k = 2 To zeilen
barcode = Range("B" & k).Value
Range("A" & k).Value = Left(barcode, 4)
Next k
'Filter aktivieren
If ActiveSheet.AutoFilterMode Then
If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData
Else
Rows(1).AutoFilter
End If
Next
Worksheets("Import starten").Activate
MsgBox "Erfolgreich kopiert!"
Unload Datumseingabe
End Sub
Ich weiß da müssen nur paar Zeilen weg und paar umgeschrieben werden, aber meine Versuche haben die Datei fast geschrottet :D
Freundliche Grüße
Burak Icel

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Code durchführen ohne Seiten zu öffnen
02.01.2018 13:16:41
Burak
ist bereits erledigt, habe mein Gehirn eingeschaltet.
Trotzdem danke :)
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige