Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
820to824
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
820to824
820to824
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
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

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
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

275 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige