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.

Excel Export mit Makro Fehler
#1
Hallo,

wir haben bei uns folgendes Problem:

Wir haben eine Excel Tabelle mit welcher wir Textdateien erstellen welche dann mittels eines anderen Tools zur Ordnerserstellung in einer AD dienen.

Im Großen funktioniert dieses Makro hervorragend, leiden haben wir einen Mitarbeiter bei welchem die Textdatein nur leer erstellt werden. Bei allen anderen Mitarbeitern werden die Textdateien richtig erstellt.
Alle benötigten Berechtigungen für den Mitarbeiter sind 1:1 wie bei allen anderen, ebenfalls die Excel Sicherheitseinstellungen sind 1:1 wie bei den anderen.

Sofern er aber auf den Erstellen Button in Excel klickt, arbeitet das Makro und die TxT-Files werden erstellt aber OHNE Inhalt.

Habt Ihr evtl. eine Idee an was es liegen kann?

Mit Grüßen

Akkarrin
Antworten Top
#2
(27.04.2016, 14:47)Akkarrin schrieb: Habt Ihr evtl. eine Idee an was es liegen kann?
Debuggen hilft!!
Antworten Top
#3
Hallo Akkarin,

gehe den Code schrittweise durch und schaue, was passiert. Eventuell fügst Du Überwachungen von Variablen hinzu oder gibst Daten im Debugfenster aus.
Du kennst Dich doch mit VBA aus und hast Zugriff auf den code?

Ansonsten kann man nur raten. Das ist wie wenn wir beide jeder ein blaues Auto haben und meins kommt vorwärts und Deins nicht. Woran kann das liegen ??? Zwischen Benzin alle und Karre steckt im Dreck gibt es noch dutzende andere Möglichkeiten ...
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#4
Hallo,

schonmal danke für die Antworten.

Debbuging hat keine Besserung gebracht.

Ich versuche das Problem einmal besser zu beschrieben:

1. Die betroffene Excel Tabelle lliegt auf einem Server-Laufwerk

2. Alle Nutzer haben eine Verknüpfung von der Excel Tabelle auf Ihren Desktop

3. Alle Nutzer (13) haben die gleichen Berechtigungen auf dem Ordner in welchem die Tabelle lliegt.

4. Bei 12 von 13 Nutzern funktioniert die Tabelle einwandfrei.

5. Nur beim 13ten (Krieger :D) funktioniert die Ausgabe der 3 Textdateien nicht, die erstellten Textdateien sind OHNE Inhalt.

6. Das makro wurde von 3 Nutzern überprüft und es wurden keine Fehler gefunden

7. HIIILLLFFFFEEEE !!!!!

8. Auch wenn der betroffene Nutzer die Tabelle auf ein lokales Laufwerk kopiert und von dort aus ausführt kommt es zu dem Fehler.

9. Excel Sicherheitsoptionen sind bei allen glelich eingerichtet, keinen Unterschied gefunden

10. Makro Sicherheit ist ebenfalls gleich eingestellt wie bei allen anderen

P.S.: Leider darf ich aus Datenschutzrechtlichen Gründen die betroffene Datei nicht weitergeben.

Aber ich werde mal den Makro-Code einstellen:


Code:
Sub Start_ExportToTxt()

   Dim strPfad As String
   
   With ThisWorkbook
   
       strPfad = ThisWorkbook.Path & "\"
       
       With .Worksheets("1_AdGroups_Create")
           Call ExportToTxt(strPfad:=strPfad, strDateiname:=.Range("C4").Text, rngExportBereich:=.Range("C5:H8"))
       End With
       
       With .Worksheets("2_AdGroups_AddMembers")
           Call ExportToTxt(strPfad:=strPfad, strDateiname:=.Range("C4").Text, rngExportBereich:=.Range("C5:E9"))
       End With
       
       With .Worksheets("3_createFldSec")
           Call ExportToTxt(strPfad:=strPfad, strDateiname:=.Range("C4").Text, rngExportBereich:=.Range("C6:G9"))
       End With
       
   
   End With
   
End Sub

Private Sub ExportToTxt(strPfad As String, strDateiname As String, rngExportBereich As Range)
   Dim strDaten As String
   
   If Len(Trim$(strDateiname)) = 0 Then
       strDateiname = rngExportBereich.Worksheet.Name & " " & Format(Now, "yyyy-mm-dd hh-mm-ss") & ".txt"
   Else
       strDateiname = strDateiname & ".txt"
   End If
   
   If Dir(strPfad & strDateiname) = strDateiname Then
           
       If MsgBox("Folgende Datei existiert bereits, soll sie überschrieben werden?" & vbLf & vbLf & _
                 "[" & strPfad & strDateiname & "]", vbYesNo + vbExclamation, "Datei überschreiben?") = vbNo Then Exit Sub
           
   End If
           
   Application.ScreenUpdating = False
   rngExportBereich.Copy
   strDaten = ZwischenablageLesen()
   Application.CutCopyMode = False
   Application.ScreenUpdating = True
   
   Open strPfad & strDateiname For Output As #1
   Print #1, strDaten
   Close #1
       
End Sub


' Sie benötigen einen Verweis auf die
' [Microsoft Forms 2.0 Objektlibrary]
' (Sollte Sie diese nicht so einfach finden, einfach eine Userform einfügen und dann wieder entfernen)

Private Function ZwischenablageLesen() As String
   Dim objDataObject As DataObject
   
   On Error Resume Next
   
   Set objDataObject = New DataObject
   objDataObject.GetFromClipboard
   ZwischenablageLesen = objDataObject.GetText
   
   Set objDataObject = Nothing
   
End Function

Schonmal danke für weitere  Hilfe.

Gruß Akkarrin
Antworten Top
#5
Hallo Akkarin,
Wie sah denn das aus dass das debugging nichts gebracht hat? Lief der Code dann weiter? Das codefragment bringt so auch nichts. Wo ist denn das Programm steckengeblieben?
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#6
Das Debbuging war ohne Befund.

Das Programm bleibt ja auch nciht stecken, es arbeitet ja, nur die Dateien die es ausgibt bei dem einen nutzer sind OHNE Inhalt.
Bei allen anderen Mitarbeitern die auf die gleiche Exceltabelle zugreifen funktioniert es auch.

Aber wir sind mitlerweile schon einen Schritt weiter.
Wir gehen hier von einem Profil-problem beim Mitarbeiter aus.

Wir werden die Tage das Profil resetten und dann schauen wie sich die Exceltabelle dann verhält.

dennoch vielen Dank für Eure Mühen.

BG

Akkarrin
Antworten Top
#7
Auch Hallo,

Code:
Private Sub ExportToTxt(strPfad As String, strDateiname As String, rngExportBereich As Range)
   Dim strDaten As String
'.......
   strDaten = ZwischenablageLesen()
   Application.CutCopyMode = False
   Application.ScreenUpdating = True
  
   Open strPfad & strDateiname For Output As #1
   Print #1, strDaten
   Close #1
      
End Sub



Private Function ZwischenablageLesen() As String
   Dim objDataObject As DataObject
  
   On Error Resume Next
  
   Set objDataObject = New DataObject
   objDataObject.GetFromClipboard
   ZwischenablageLesen = objDataObject.GetText
  
   Set objDataObject = Nothing
  
End Function

kommentier mal das On Error Resume Next aus, denn dadurch wird der Fehler beim Kollegen übergangen und die Variable strDaten enthält keinen Inhalt.
Gruß Stefan
Win 10 / Office 2016
Antworten Top


Gehe zu:


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