ich hab folgendes Problem: ich möchte gerne eine bestimmte Spalte aller Arbeitsblätter einer Arbeitsmappe mit 1 multiplizieren
Danke im Voraus für Euere Antworten
Sub Multiplizieren_mit_1()
Dim wks As Worksheet, Zelle As Range, Spalte As Long, StatusCalc As Long
On Error GoTo Fehler
Set wks = ActiveSheet
Spalte = 6 'Spalte F, Spalte in der Multipliziert werden soll - ggf anpassen!!!!!
'Makrobremsen lösen
With Application
.ScreenUpdating = False
.EnableEvents = False
StatusCalc = .Calculation
.Calculation = xlCalculationAutomatic
End With
For Each wks In ActiveWorkbook.Worksheets
With wks
For Each Zelle In .Range(.Cells(1, Spalte), .Cells(.Rows.Count, Spalte).End(xlUp))
With Zelle
If IsEmpty(Zelle) Or .Value = "" Then
'die ElseIf-Prüfungen auf Datum und/oder Zeit kann man ggf. weglassen
ElseIf InStr(.Text, ":") > 0 And IsDate(.Text) Then 'Datum/Zeit
.Value = CDate(.Text)
ElseIf Len(.Text) - Len(Replace(.Text, ".", "")) = 2 _
And IsDate(.Text) Then 'Datum
.Value = CDate(.Text)
ElseIf .Text Like "####-##-##" Then 'Datum-ISO JJJJ-MM-TT
.Value = CDate(Zelle.Text)
Else
.Value = .Value * 1
End If
End With
ResumeNextZelle:
Next
End With
Next
Fehler:
With Err
Select Case .Number
Case 0
Case 13 'Typ-Fehler
Resume ResumeNextZelle
Case Else
MsgBox "Fehler-Nr.: " & .Number & vbLf & .Description
End Select
End With
'Makrobremsen zurücksetzen
With Application
.ScreenUpdating = True
.EnableEvents = True
.Calculation = StatusCalc
End With
End Sub