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

Automatisch Anfangspalte ändern

Automatisch Anfangspalte ändern
29.11.2002 21:34:50
Stefanie
Hallo,

ich Benutze folgenden Code zum Umwandeln von Datum-Formate in Zahlenformate. Nun mein Problem die Anfangsspalte ändert häufig von 8 auf 9, oder mal wieder auf 7 etc. . Gibt es da Abhilfe daß der Code das selbstständig macht, weil wenn ich nicht Umstelle erhalte ich eine Fehlermeldung.

Danke Udo

Public Sub tabelle_reparieren()
Dim LastPlace, Z As Variant, X As Variant
Dim Hilf, Hilf2, HilfLänge, HilfKomma, Counter As Integer
Dim dZahl As Double
Dim lZahl1 As Long

Const AnfangsSpalte As Integer = 8
Const AnfangsZeile As Integer = 2
Const MaxWert As Integer = 80
Const markieren As Integer = 1 ' 0 für kein FETT-Schrift bei geänderten Feldern

Counter = 0 'fehlerzähler auf 0 initalisieren
LastPlace = ActiveCell.SpecialCells(xlLastCell).Address
ActiveSheet.Range(Cells(AnfangsZeile, AnfangsSpalte), LastPlace).Select
Z = Selection.Address 'Get the address
For Each X In ActiveSheet.Range(Z) 'Do while
If Len(X) > 0 Then 'Find cells with something
HilfKomma = InStr(X, ".")
If (IsNumeric(X) And (HilfKomma > 0)) Then
' ########## FEHLER 1) zahl mit "." gefunden
HilfLänge = Len(X)
Hilf = Mid(X, 1, HilfKomma - 1)
Hilf2 = Mid(X, HilfKomma + 1, HilfLänge - HilfKomma)
If Left(Hilf, 1) = "-" Then ' wenn Zahl vor Komma negativ, dann müssen die beiden Werte subtrahiert werden
dZahl = CDbl(Hilf) - (CDbl(Hilf2) / 10)
Else ' ansonsten müssen sie addiert werden
dZahl = CDbl(Hilf) + (CDbl(Hilf2) / 10)
End If
'ist zahl negativ? wenn ja, ausdruck negieren
'If Left(Hilf, 1) = "-" Then
' dZahl = -dZahl
'End If
X.NumberFormat = "##0.00"
X.Value = dZahl
Counter = Counter + 1
If markieren Then
X.Font.Bold = True ' geändertes markieren
End If
End If

If (CDbl(X) > MaxWert) Then
' ########## FEHLER 2) ungewolltes datumsfeld gefunden
Hilf = CStr(Day(X))
Hilf2 = CStr(Month(X))
dZahl = CDbl(Hilf) + (CDbl(Hilf2) / 10)
X.NumberFormat = "##0.00"
X.Value = dZahl
Counter = Counter + 1
If markieren Then
X.Font.Bold = True ' geändertes markieren
End If
End If

Else
' else -> Feld ist leer! also nix machen
End If
Next
MsgBox ("Anzahl der Fehler in dieser Tabelle: " + CStr(Counter))
End Sub

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Automatisch Anfangspalte ändern
29.11.2002 21:42:05
PeterW
Hallo Udo/Stefanie,

der einfachste Weg würde sein, per Inputbox die Anfangsspalte dem Code zu übergeben. Welche Möglichkeiten seht ihr, dass Excel den Anfang automatisch findet?

Gruß
Peter

Re: Automatisch Anfangspalte ändern
29.11.2002 23:12:01
Udo
Hallo Peter,

ich kann mit dem Begriff Input-Box nichts Anfangen. Kannst Du mir ein Beispiel geben/schreiben wie das Aussehen könnte.

Udo

Re: Automatisch Anfangspalte ändern
29.11.2002 23:22:44
PeterW
Hallo Udo,

mal ein Beispiel für eine Inputbox:

Mehr Infos gibt es in der VBA-Hilfe, wenn Du mit dem Cursor auf Inputbox im Code gehst und F1 drückst.

Gruß
Peter

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige