UsedRange anders als angezeigt, daher falscher Übertrag auf TXT
#1
Moin,

ich habe ein Problem mit meinem UsedRange auf einem Reiter. Dieser Reiter soll dann als TXT gespeichert werden. Es soll eigentlich nur Spalte A in der TXT auftauchen, jedoch taucht Spalte A:L auf. Wenn ich die überflüssigen Spalten lösche, ändert sich leider nichts an dem UsedRange.

Ich habe euch die Testdatei angehängt, damit ihr seht, was ich meine. In der zu erstellenden TXT sind dann 11x Tab hinter dem letzen Eintrag aufgeführt, die dort nicht hin sollen.

Vielleicht hat einer von euch dazu eine Idee. Ich komme hier einfach nicht weiter.

Hier schon mal meine Makros:

Code:
Sub Werte()
   
   Dim Wb As Workbook: Set Wb = ThisWorkbook
   Dim Ws As Worksheet
   Dim i As Integer
   Dim TxtName As String
   Dim strEmpfaenger As String
   Dim strAn As String
   Dim strBetr As String
   Dim strBody As String
   Dim strAttPfad As String
   Dim strTh As String
   Dim strCommand As String
   Dim strBCC As String
   Dim p1 As String
   Dim p2 As String
   Dim p3 As String
   Dim p4 As String
   Dim Blatt As Worksheet, wksActive As Worksheet
   Dim s As String
   
    TxtName = "Werte.txt" ' so heißt die Datei später
    ' Werte werden aus den einzelnen Reitern in den Reiter Werte kopiert, vorher wird dieser _
geleert
    ' Erstellung der txt-Datei mit dem Inhalt des Reiters Werte
    TxtName = "Werte.txt" 'Zahl ändern
       Sheets("Werte").Visible = True
       ChDir "C:\tmp\" ' tmp-Verzeichnis, da dieses immer vorhanden ist
       Application.DisplayAlerts = False
       ActiveWorkbook.SaveAs TxtName, FileFormat:=xlText, CreateBackup:=False, local:=True
       Application.DisplayAlerts = False
       ActiveWorkbook.Close
       
    Set Wb = Nothing: Set Ws = Nothing
   ' Werte für die E-Mail
   strAn = "empfänger@testmail.de"
   strBetr = "Werte"
   strBCC = "steuerung@testmail.de"
   strBody = "Sehr geehrte Damen und Herren" & vbNewLine & vbNewLine & _
   "anbei die Werte ihres Bereiches." & vbNewLine & _
   "Die enthaltenden Daten wurden automatisiert erhoben und hiermit an Sie weitergeleitet." & _
vbNewLine & _
   "Bei Fragen stehen wir Ihnen gerne zur Verfügung." & vbNewLine & vbNewLine & _
   "Vielen Dank für Ihre Mühen."
   ' Code für die Konfiguration
   strTh = "C:\Program Files (x86)\Mozilla Thunderbird\Thunderbird.exe " ' Thunderbird als E- _
Mail-Programm
   strCommand = strCommand & " -compose " & "to=" & Chr(34) & strAn & Chr(34) ' Empfänger
   strCommand = strCommand & ",subject=" & Chr(34) & strBetr & Chr(34) ' Betreff
   strCommand = strCommand & ",body=" & Chr(34) & strBody & Chr(34) ' Text
   strCommand = strCommand & ",bcc=" & Chr(34) & strBCC & Chr(34) ' BCC
   strCommand = strCommand & ",attachment=" & "file:///C:\tmp\Werte.txt" 'Anhang
   Shell strTh & strCommand, vbNormalFocus
   'Blattschutz wieder einstellen
   Set wksActive = ActiveSheet
End Sub

 und zur Überprüfung der UsedRange:

Code:
Sub t()
MsgBox ActiveSheet.UsedRange.Address
End Sub


Vielen Dank

Gecko


Angehängte Dateien
.xlsm   Werte_Test.xlsm (Größe: 21,84 KB / Downloads: 2)
Top
#2
Hi,


.xlsm   Werte_Test.xlsm (Größe: 19,58 KB / Downloads: 1)

ich habe mal "Bereinigt" (mit "Inquire")
da ich nicht weiß wie du die Daten erstellst, kann ich Dir auch keinen gezielten Tipp geben.

Wenn du zuvor gelöscht hast...., dann verzichte darauf und schneide Spalte A in ein anderes sheet aus und exportiere dann dieses Sheet.
lg Chris
Feedback nicht vergessen.
[Bild: v.gif]
3a2920576572206973742064656e20646120736f206e65756769657269672e
[-] Folgende(r) 1 Nutzer sagt Danke an chris-ka für diesen Beitrag:
  • Gecko
Top
#3
Hallo Gecko
Usedrange ist eine ganz listige Sache. Siehe mal diese Links:
www.online-excel.de/fom/fo_read.php?f=1&bzh=0&h=77954&ao=1#a123x
www.online-excel.de/fom/fo_read.php?f=1&bzh=0&h=77902&ao=1#a123x

Wenn Du Dich intensiver mit der Sache auseinandersetzen möchtest, habe ich hier noch eine Demo-Datei die ich nicht ohne weiteres hochladen kann, weil sie Makro enthält.
Gruss
[-] Folgende(r) 1 Nutzer sagt Danke an Helvetier für diesen Beitrag:
  • Gecko
Top
#4
Danke schon mal, werde das gleich mal probieren, vielleicht ist der Fehler dann ja schon behoben, sonst packe ich auch nochmal dran, wie ich die Werteliste erhebe
Top
#5
Vielen Dank für den Tipp mit dem Kopieren auf einen weiteren Reiter, so hat es erstmal funktioniert und auch danke für die weiteren Links, hat mich schonmal im Verständnis für VBA weiter gebracht und jetzt weiß ich auch, dass man lieber den Bereich selber definiert Smile
Top


Gehe zu:


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