Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Größeres Projekt mit VBA, Fragen
#21
@Gast123:

Im Makro "mitarbeiter auflisten" muss ein bug drin sein. Ich tippe mal auf die For Next Schleife zum kopieren aller CSV-Dateien.

Code:
With Worksheets("Übersicht Stunden")
  'LatZell in Spalte C suchen mit Korrektur
  lzX = .Cells(Rows.Count, 3).End(xlUp).Row
  If lzX < 3 Then lzX = 3
  'alte Liste komplett löschn
  .Range("A3:J" & lzX).ClearContents
 
  'Schleife zum kopieren aller CSV Dateien
  For j = 2 To Worksheets.Count
     If Right(Worksheets(j).Name, 3) = "CSV" Then
        Set TbX = Worksheets(j)
        'Consultant aus Sheetname ermitteln
        .Cells(z, 1) = Left(TbX.Name, InStrRev(TbX.Name, "_") - 1)
        lzX = TbX.Cells(Rows.Count, 1).End(xlUp).Row
        'Betreff in Spalte C einfügen
        TbX.Range("A4:A" & lzX).Copy
        .Cells(z, 3).PasteSpecial xlPasteValues
        'Beginn bis Ort ab Spalte D einfügen
        TbX.Range("B4:F" & lzX).Copy
        .Cells(z, 4).PasteSpecial xlPasteAll
         Application.CutCopyMode = False
        'Naechste LastZeile ermitteln
         z = .Cells(Rows.Count, 3).End(xlUp).Row + 1 + LZ
     End If
  Next j
Ich habe diese Woche 11 CSV Dateien, auch alle im richtigen Format, auf die Hauptseite kopiert er mir aber nur die Daten von 8 Mitarbeitern Huh Woran könnte das liegen?
Antworten Top
#22
Halo Andy

da bin ich jetzt verwundert, normalerwise sollte das NICHT vorkommen. Suchen wir bitte mal gemeinsam nach dm Fehler! 
Stimmt bei den fehlenden Dateien die Endung "CSV" ??  Könnte es falsch geschrieben sein "CVS" oder in Kleinschrift??? 

Prüf das bitte mal zuerst nach. Sollte es Schreibfehler geben wie Kleinschrift kannst du das im Makro so aendern:
If UCase(Right(Worksheets(j).Name, 3)) = "CSV" Then  - So wandelt das Makro den Text in Grossschrift um.
If UCase(Right(Worksheets(j).Name, 3)) = "CSV") Or _
   UCase(Right(Worksheets(j).Name, 3)) = "CVS") Then
  - So kannst du Schreibfehler von CSV abfangen.

mfg  Gast 123
[-] Folgende(r) 1 Nutzer sagt Danke an Gast 123 für diesen Beitrag:
  • Andy_S_PB
Antworten Top
#23
CSV ist bei allen korrekt. Aaaber die Idee genauer hinzuschauen, hat sich gelohnt Smile . Diejenigen, bei denen csv klein geschrieben ist, werden ignoriert. Es scheint also Case-sensitiv zu sein.

Es liegt also an dieser Zeile:

Code:
If Right(Worksheets(j).Name, 3) = "CSV" Then
        Set TbX = Worksheets(j)

Reicht es hier jetzt ein '... or "csv" Then...' einzufügen, also so?

Code:
If Right(Worksheets(j).Name, 3) = "CSV" or "csv" Then
        Set TbX = Worksheets(j)

EDIT: Habs! Habe die Zeile so geändert, alles da.
Code:
If Right(Worksheets(j).Name, 3) = "CSV" Or Right(Worksheets(j).Name, 3) = "csv" Then
        Set TbX = Worksheets(j)
CVS oder so wird nicht herauskommen können, da die Datei ja direkt vom Outlook als CSV kommt, es könnte eine Sache des MUI sein, dass manche Office-Sprachpakete, die Dateiendung in Kleinbuchstaben ausgeben. Naja, so isses gefixt. Danke, great Job!
Antworten Top
#24
Hallo,

dafür gibt es doch die Textumwandlungsfunktionen UCase und LCase. UCase wandelt alles in Großbuchstaben um, LCase in Kleinbuchstaben. Gast 123 hat den Vroschlag doch schon gebracht.
Gruß Stefan
Win 10 / Office 2016
[-] Folgende(r) 1 Nutzer sagt Danke an Steffl für diesen Beitrag:
  • Andy_S_PB
Antworten Top
#25
Hi zusammen,

habs zwar nur überflogen, aber hätte dazu einen kleinen Hinweis:
Zitat:  Import der Dateien vorhanden ist


Wenn der Import vorhanden ist, kennt man den Dateinamen bzw später den Codenamen (=Alleinstellungsmerkmal).
Dann bräuchte es die ganze Stringmetzgerei nicht oder bin ich falsch?
gruß
Marco
Antworten Top
#26
Zitat:Hallo,

dafür gibt es doch die Textumwandlungsfunktionen UCase und LCase. UCase wandelt alles in Großbuchstaben um, LCase in Kleinbuchstaben. Gast 123 hat den Vroschlag doch schon gebracht.
Ja, das ist korrekt. Ich habe jetzt aber die 20 Zeichen lange Änderung genommen, da mit "csv" bzw. "CSV" die Dateiendung feststeht und beim Exportieren vergeben wird. Eine Verdrehung der Buchstaben wäre höchstens mutwillig herbeizuführen, wobei dann der Führungsstil wieder angewendet werden muss :19: :05:
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste