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

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

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

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige