Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1332to1336
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
Formatiert nur eine Spalte statt zwei
18.10.2013 17:22:32
Mike
Guten Tag Forum,
ich verzweifle an folgendem Problem:
Ich übertrage per Makro Werte aus mehreren Spalten von einem Tabellenblatt auf ein anderes.
Anschließend sollen auf dem neuen Tabellenblatt die Spalten formatiert werden (Währung).
Bei mir wird aber nur die erste Spalte korrekt formatiert z. B. 2,40 €
Bei der zweiten Spalte steht aber immer nur 2,4 und ich kann keine Summen aufaddieren. Erst wenn ich in die Zelle einmal reingeklickt habe und wieder rausgehe wird sie korrekt dargestellt und kann addiert werden.
Ich habe es auch schon mit
.NumberFormat = "#,##0.00 $" etc. probiert, aber es geht einfach nicht.
Ist mein Makro falsch oder scheiter ich an irgendeiner Einstellung in Excel?
Hier mal das Makro:

Sub Abrechnung()
Dim intIndexAbrechnung As String
Dim intIndexErfassung As String
Dim intIndexKontrolle As String
Dim strErfassung_B As String
Dim strErfassung_C As String
Dim strSearchKey As String
Dim aktKey As String
Dim TableToEnd As Boolean
Dim intFound As Integer
Dim waehrung As String
'// Initialisierung
searchKey = Sheets(3).Range("C1")
TableToEnd = False
intIndexAbrechnung = 3
intIndexErfassung = 1
intIndexKontrolle = 1
intFound = 0
waehrung = " €"
'// Werte löschen
Sheets(3).Range("A" & intIndexAbrechnung, "C5000").Clear
'// So lange Sheet-2 gefüllt ist
While Not TableToEnd
'// Zelleninformation aus Sheet 2 holen
aktKey = Sheets(2).Range("A" & intIndexKontrolle)
strErfassung_B = Sheets(2).Range("B" & intIndexKontrolle)
strErfassung_C = Sheets(2).Range("C" & intIndexKontrolle)
'// Vergleich eingegebener Wert und aktueller Wert
If searchKey = aktKey Then
'// Wenn gleich, dann schreibe Werte aus Sheet 2 auf Sheet 3
Sheets(3).Range("A" & intIndexAbrechnung) = aktKey
Sheets(3).Range("C" & intIndexAbrechnung) = strErfassung_C
Sheets(3).Range("B" & intIndexAbrechnung) = strErfassung_B
'// Zeile in Sheet 2 löschen
Sheets(2).Rows(intIndexKontrolle).Delete
'// Formartieren in €
Sheets(3).Range("B" & intIndexAbrechnung).NumberFormat = "#,##0.00" & """" & waehrung &  _
_
_
Sheets(3).Range("C" & intIndexAbrechnung).NumberFormat = "#,##0.00" & """" & waehrung &  _
_
_
'// Increment
intIndexAbrechnung = intIndexAbrechnung + 1
intIndexKontrolle = intIndexKontrolle - 1
intFound = intFound + 1
End If
'// Abschluss
intIndexKontrolle = intIndexKontrolle + 1
If aktKey = "" Then TableToEnd = True
Wend
'// Keine gefunden?
If (intFound = 0) Then MsgBox "Keine gefunden!", vbInformation, "Blöd!"
'druckt Rechnung aus
Dim Kopien As Variant
If MsgBox("Rechnung ausdrucken?", vbYesNo, "Drucken") = vbYes Then
Do
Kopien = InputBox("Anzahl Kopien", "Drucken", 1)
If StrPtr(Kopien) = 0 Then Exit Sub
If IsNumeric(Kopien) Then Exit Do
MsgBox "Bitte eine Zahl eingeben!", vbExclamation, "Hinweis"
Loop
ActiveSheet.PrintOut From:=1, To:=1, Copies:=CLng(Kopien)
End If
End Sub

Vielen Dank im Voraus.
Gruß
Mike

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Formatiert nur eine Spalte statt zwei
18.10.2013 17:24:22
Hajo_Zi
Hallo Mike,
die zweite Spalte enthält Text.
Multiplikation mit 1
Schreibe eine 1 in eine Zelle, diese Zelle kopieren, markiere Deinen Bereich, rechte Maustaste, Inhalte einfügen, im Dialog auswählen Multiplikation und ok
oder
Daten, Text in Spalten, Zellen vorher als Standard, Zahl formatieren.

AW: Formatiert nur eine Spalte statt zwei
18.10.2013 17:40:06
Mike
Hallo Hajo,
danke für die Turboantwort.
Meinst Du die zweite Ursprungsspalte oder die zweite Zielspalte?
Der Hintergrund für das Makro ist, dass ich aus einer großen Datenmenge alle mit einem gleichen Wert heraussuche (und anschließend aufaddiere). Da will ich nicht jedesmal hinterher die Zeilen umformatieren.
Oder habe ich Dich falsch verstanden?
Gruß
Mike

Anzeige
AW: Formatiert nur eine Spalte statt zwei
18.10.2013 17:41:48
Hajo_Zi
Hallo Mike,
Du hattest geschrieben Du formatierst 12 Spalten und bei der zweiten geht es nicht. Auf welche mag ich mich dann wohl beziehen?
Gruß Hajo

AW: Formatiert nur eine Spalte statt zwei
18.10.2013 17:57:57
Mike
Ich dachte es könnte ja sein, dass die Ursache in den Ausgangswerten liegt.
OK, wir sind bei der Zielspalte, aber da ist nichts außer einer leeren Spalte.
Ich kann die Zellen vorher formatieren wie ich will, nach Ausführung des Makros immer das gleiche Ergebnis und hinterher will ich es nicht manuell machen.
Habe jetzt aber folgenden Zusammenhang herausgefunden: Wenn der Ausgangswert z. B. x,00 ist klappt es reibungslos. Nur wenn hinter dem Komma noch ein Wert außer ,00 kommt gibt es das Problem.
Gruß
Mike

Anzeige
AW: Formatiert nur eine Spalte statt zwei
18.10.2013 18:02:09
Mike
Mist, in der ersten Spalte auch. Da habe ich bisher immer nur mit ganzen Zahlen getestet.
Scheint also nicht am Text oder irgendwas zu liegen, sondern an den Werten nach dem Komma.
Gruß
Mike

AW: Formatiert nur eine Spalte statt zwei
18.10.2013 20:05:02
Mike
Hier die Lösung meines Problems:
Dim strErfassung_B As Variant
Dim strErfassung_C As Variant
Manchmal ist es wirklich zu einfach.
Gruß
Mike

307 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige