Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Frage geht an Christoph!(und auch die andern)

Forumthread: Frage geht an Christoph!(und auch die andern)

Frage geht an Christoph!(und auch die andern)
17.12.2004 22:49:27
Rene
Moin Christoph,
Du hattest mir ja hervorragend bei meinem Problem mit diesem Code:

Sub fuenzig_plus()
Dim i%, j%, k%
With Sheets("Liste")
'wenn nur G7 eine Eintrag hat, dann alle berechnen:
If Application.Count(.Range("G7:G86")) = 1 And .Range("G7") <> "" Then
For i = 7 To 85 Step 2
.Cells(i + 1, 7) = .Cells(i, 7)
.Cells(i + 2, 7) = .Cells(i, 7) + 0.05
Next i
.Cells(87, 7).ClearContents
Else 'wenn Bereich teilweise oder ganz gefüllt:
For i = 7 To 86
If .Cells(i, 7) <> "" Then
For j = i + 1 To 86
If .Cells(j, 7) <> "" Then
.Cells(j, 7) = .Cells(i, 7)
i = j
Exit For
End If
Next j
For k = j + 1 To 86
If .Cells(k, 7) <> "" Then
.Cells(k, 7) = .Cells(i, 7) + 0.05
Exit For
End If
Next k
End If
Next i
End If
End With
End Sub

geholfen,meine Frage dazu ist was meintest du mit "Fehlerabfangen"? und das zweite wäre es möglich wenn ich die Zellen gelöscht habe das er mir dann in der Spalte daneben(H7:H86)auch etwas ändern kann? Es müßte immer ein dazugehöriger Buchstabe stehen.Hier ein Beispiel:
12,000 A
12,000 B
12,050 A
12,050 B
12,100 A
12,100 B
......
der Buchstabe müßte sich aber auch ändern wenn ich die Zahl lösche (laut deinem Macro).Weißt du oder natürlich jemand anderes einen Rat?
mfg Rene
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Zellen mit Eintrag neu berechnen
18.12.2004 23:16:36
Christoph
Hallo René,
ich war die letzten Tage nicht im Forum, insofern kann ich dir erst jetzt antworten.
Mit "Fehlerabfangung" meine ich:
Wenn du dieses Makro über das "Selection_Change" -Ereignis der Tabelle "Liste" aufrufst (also nicht nur über die Userform - sondern bei jedem Zellenwechel innerhalb des Ranges("G7:G86")), dann wirst du an diversen Stellen mit Fehlermeldungen konfrontiert, die es abzufangen gilt.
Bsp:
der Range ist nicht vollständig gefüllt, und du gibst irgendwo in diesem Range einen Buchstaben "a" ein statt eine Zahl. Dann versucht das Makro in der nächsten Zelle "a + 0,05" zu berechnen was zwangsläufig zu einem Fehler führt.
Fehler dieser Art (und es gibt bestimmt noch andere Fälle) müssen bedacht und im Code, nämlich dem "Selection_Change-Ereignis" abgefangen werden.
Insofern kann ich nicht empfehlen, den Code über "Selection_Change", sprich: "Drücken der Enter-Taste" auszuführen.
Zu deiner zweiten Frage (siehe Code)

Option Explicit
Sub fuenfzig_plus()
Dim i%, j%, k%
With Sheets("Liste")
'wenn nur G7 eine Eintrag hat, dann alle berechnen:
If Application.Count(.Range("G7:G86")) = 1 And .Range("G7") <> "" Then
For i = 7 To 85 Step 2
.Cells(i, 8) = "A"
.Cells(i + 1, 7) = .Cells(i, 7)
.Cells(i + 1, 8) = "B"
.Cells(i + 2, 7) = .Cells(i, 7) + 0.05
Next i
.Range("G87:H87").ClearContents
Else 'wenn teilweise oder ganz ausgefüllt:
For i = 7 To 86
If .Cells(i, 7) <> "" Then
.Cells(i, 8) = "A"
For j = i + 1 To 86
If .Cells(j, 7) <> "" Then
.Cells(j, 7) = .Cells(i, 7)
.Cells(j, 8) = "B"
i = j
Exit For
End If
Next j
For k = j + 1 To 86
If .Cells(k, 7) <> "" Then
.Cells(k, 7) = .Cells(i, 7) + 0.05
.Cells(k, 8) = "A"
Exit For
End If
Next k
End If
Next i
End If
End With
End Sub

Gruß
Christoph
PS: hast du noch den Link zu dem alten Beitrag? Dann poste diesen doch bitte in deiner Antwort - "weil wegen Archiv und alles"
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