Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA-Formatierung anpassen

VBA-Formatierung anpassen
27.11.2006 13:41:34
bully
Hallo Excelfreund,
ich benutze in einem Makro folgenden Code um die Spalte D zu Formatieren:
strTxt = strTxt & Format(Cells(iR, 4), "ddmmyyyy") & strSep
Jetzt habe ich in der Spalte D (4) in den Zeilen 3-9 aber noch Werte vom Dokumentenkopf die im Standartfromat bleiben sollten. Wie muss obiger Code angepasst werden, so dass die Spaltenformatierung erst ab der Zeile 10 angepasst wird? Ich habe schon einiges probiert, aber als VBA-Anfänger bin ich nicht zum Ziel gekommen.
Bin dankbar für eure Tipp's
Gruss bully
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: VBA-Formatierung anpassen
27.11.2006 14:10:41
Stefan
Hallo Bully,
Der Code den Du gepostet hast ist offenbar nur ein Teil deines Codes, deshalb kann ich nicht versprechen das es klappt. Aber probier mal folgendes:

If iR >= 10 Then
strTxt = strTxt & Format(Cells(iR, 4), "ddmmyyyy") & strSep
Else strTxt = Cells(iR, 4)
End If

Damit sollten die Zeilen 1-9 so bleiben wie sie sind, auch wenn die Code-Anpassung an anderer Stelle evetuell besser waere.
Schoene Gruesse
Stefan
Anzeige
AW: VBA-Formatierung anpassen
27.11.2006 15:51:42
bully
Hollo Stefan,
danke für dein Vorschlag. Du hast recht meine Codezeile ist nur ein Teil des Codes. Dein Code läuft ohne Fehler durch, das Resultat des Exportes ist dann aber leider eine leere Datei. Deshalb hier der ganze Code:

Sub export7()
Dim strSep As String, strDat As String, _
iCol As Byte, iRow As Integer, _
iR As Integer, iC As Byte, strTxt As String, _
strMldg As String
iRow = ActiveSheet.UsedRange.Rows.Count
iCol = ActiveSheet.UsedRange.Columns.Count
strSep = 9
If strSep = "" Then Exit Sub
If strSep = "9" Then
strSep = Chr(9)
Else
strSep = Left(Trim(strSep), 1)
End If
DateiName:
strDat = InputBox("Dateiname?", "DateiName", ThisWorkbook.Path & "\SPRUNGM____1148___" & Format(Now, "YYYYMMDDHHMMSS") & ".txt")
If strDat = "" Then Exit Sub
If InStr(strDat, ":\") = 0 Then
strDat = ThisWorkbook.Path & "\" & strDat
End If
If Dir(strDat) <> "" Then
strMldg = MsgBox("Datei bereits vorhanden. Überschreiben?", vbYesNo)
If strMldg = vbNo Then GoTo DateiName
End If
On Error GoTo DateiFehler
Open strDat For Output As #1
For iR = 3 To iRow
strTxt = ""
For iC = 1 To iCol
If Columns(iC).Hidden = False Then
If iC <> 4 Then
strTxt = strTxt & Cells(iR, iC) & strSep
Else
strTxt = strTxt & Format(Cells(iR, 4), "ddmmyyyy") & strSep
End If
End If
Next iC
strTxt = Left(strTxt, Len(strTxt) - 1)
If Trim(Replace(strTxt, strSep, "")) > "" Then Print #1, strTxt
Next iR
Close #1
MsgBox ("Die Datei " & strDat & " wurde angelegt.")
Exit Sub
DateiFehler:
MsgBox ("Fehler in Dateinamen!")
Resume DateiName
End Sub

Der Code stammt aus diversen Forenbeiträgen, und wurde von mir zusammen geschustert. Vielleicht gibt es noch Optimierungsmöglichkeiten. Aber das nur nebenbei. Ich hoffe du kannst jetzt deinen Code so einbetten dass es zum gewünschten Resultat führt.
Gruss bully
Anzeige
AW: VBA-Formatierung anpassen
27.11.2006 16:16:56
Stefan
Hallo bully,
Damit sollte es klappen:

Sub export7()
Dim strSep As String, strDat As String, _
iCol As Byte, iRow As Integer, _
iR As Integer, iC As Byte, strTxt As String, _
strMldg As String
iRow = ActiveSheet.UsedRange.Rows.Count
iCol = ActiveSheet.UsedRange.Columns.Count
strSep = 9
If strSep = "" Then Exit Sub
If strSep = "9" Then
strSep = Chr(9)
Else
strSep = Left(Trim(strSep), 1)
End If
DateiName:
strDat = InputBox("Dateiname?", "DateiName", ThisWorkbook.Path & "\SPRUNGM____1148___" & Format(Now, "YYYYMMDDHHMMSS") & ".txt")
If strDat = "" Then Exit Sub
If InStr(strDat, ":\") = 0 Then
strDat = ThisWorkbook.Path & "\" & strDat
End If
If Dir(strDat) <> "" Then
strMldg = MsgBox("Datei bereits vorhanden. Überschreiben?", vbYesNo)
If strMldg = vbNo Then GoTo DateiName
End If
On Error GoTo DateiFehler
Open strDat For Output As #1
For iR = 3 To iRow
strTxt = ""
For iC = 1 To iCol
If Columns(iC).Hidden = False Then
If (iC <> 4 OR iR < 10) Then
strTxt = strTxt & Cells(iR, iC) & strSep
Else
strTxt = strTxt & Format(Cells(iR, 4), "ddmmyyyy") & strSep
End If
End If
Next iC
strTxt = Left(strTxt, Len(strTxt) - 1)
If Trim(Replace(strTxt, strSep, "")) > "" Then Print #1, strTxt
Next iR
Close #1
MsgBox ("Die Datei " & strDat & " wurde angelegt.")
Exit Sub
DateiFehler:
MsgBox ("Fehler in Dateinamen!")
Resume DateiName
End Sub

Ich bin urspruenglich davon ausgegangen dass Du die Daten in ein neues Excelblatt schreibst, deshalb wusste ich nicht welchen Zweck das Zusammenfuegen der unterschiedlichen Textbausteine hatte. Jetzt ist es mir (zumindest halbwegs) klar.
Schoene Gruesse
Stefan
Anzeige
AW: VBA-Formatierung anpassen
bully
Hallo Stefan,
vielen Dank für deine Arbeit,es funktioniert fehlerfrei!!
Gruss bully
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige