Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1964to1968
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
Inhaltsverzeichnis

vba code mit schleife ???

vba code mit schleife ???
11.02.2024 21:47:20
Andreas Schmitt
folgenden code habe ich zusammengebastelt. er funktioniert auch nur möchte dass sich die column befehlszeile immer dann um 1 erhöht wenn ich in der msgbox auf ja klicke beim nächsten ja klick wieder um 1 usw.

Private Sub Worksheet_Activate()

If Tabelle7.Range("B2").Value > "" Then
Dim Antwort As Integer
Antwort = MsgBox("Möchtest du das Ergebnis der Formeln auf Übersicht Ausgaben und Diagramm speichern ?", vbYesNoCancel + vbQuestion + vbDefaultButton2, "Frage")

If Antwort = vbYes Then
GoTo 1:
Else
GoTo 2:
End If
1:
anfang: Dim rngBereich As Range, iCalc As Integer

'Bereich wo sich die Formeln befinden, hier Spalte 1
Set rngBereich = Columns(3) diese 3 soll sich immer um 1 erhöhen wenn ich in der msgbox auf ja klicke.
On Error GoTo KeineFormeln:
'sind keine Formeln vorhanden, kommt es zum Fehler
Set rngBereich = rngBereich.SpecialCells(xlCellTypeFormulas)
On Error GoTo anfang:

With Application
iCalc = .Calculation
.ScreenUpdating = False
.EnableEvents = False
.Calculation = xlCalculationManual

' Formel wird durch festen Wert ersetzt,
' wenn diese als Ergebnis nicht leer liefert.
' Dies kann auch umgestellt oder erweitert werden
For Each rngBereich In rngBereich
If rngBereich > "" Then rngBereich.Value = rngBereich.Value
Next rngBereich

.Calculation = iCalc
.ScreenUpdating = True
.EnableEvents = True
End With

KeineFormeln:

End If


2:
End Sub

Bitte um Hilfe !!!

19
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
TWIE OFT NOCH, SPAMMER ? (owT)
11.02.2024 21:53:56
Oppawinni
und immer noch ohne Code-Tags
AW: vba code mit schleife ???
11.02.2024 21:56:51
Piet
Hallo Andreas

schau bitte mal in deinen alten Thread, ua. mit Oppawinni. Da habe ich gerade meine letzte Lösung hochgeladen.
Bin gespannt ob dir das weiterhilft???

mfg Piet
AW: vba code mit schleife ???
12.02.2024 01:13:14
Piet
Hallo

ich sehe gerade ein altes Video vom Colonia Duett. Habe ich irgenwas nicht mitbekommen?
Ich hatte mal einen Code geschickt, den ich jetzt auf Do Lopp Schleife umgebaut habe.
Mit seinem kuriosen Code, mit seinen Goto XY usw., hat das aber nichts zu tun.

Würde mich aber sehr freuen wenn es damit klappt. Dann gibt er sicher Ruhe im Forum.
Es gibt ja noch andere Frager, um die wir uns kümmern müssen.
Tärä, tärä, tära, dreimal Kölle Allaf .....

mfg Piet
Anzeige
AW: Sorry, ich bin raus!!
12.02.2024 01:23:34
Piet
Hallo Andreas

bei deinem Code blickt man so gut wie nicht durch was der überhaupt machen soll.
Das ist das - erste mal - im Forum, das ich eine weitere Zusammenarbeit ablehne!

mfg Piet
AW: vba code mit schleife ???
12.02.2024 11:52:46
Piet
Hallo Andreas

nachdem ich eine Nacht über die Sache geschlafen habe, lies es mir keine Ruhe wo der Fehler stecken könnte.
Ich nehme an du meinst konkret den Code in deiner Beispieldatei 166980.xls - Da fand ich einen Fehler!

In Beispiel 166980 befindet sich in Tabelle7 eine Formel, die bei mir einen Fehler zeigt, Fehlerwert = #NAME?
Warum die Formel fehlerhaft ist kann ich dir nicht sagen, mit Formeln kenne ich mich nicht aus! Bitte die Kollegen fragen!
Tatsache ist auch, das diese Formel völlig überflüssig ist, schau es dir bitte mal selbst an.

Bei der Wenn Funktion soll als Ergebnis doch das in der Zelle stehen - "Sparen !" oder"a"
Was bitte testest du dann im Code - If rngToCheck.Value = "" Then - auf den Wert "" = (Empty) ??
Der Wert "" kann bei deiner Formel doch NIE vorkommen. Diese Codezeile kannst du löschen!
Bei mir verursachte sie aber einen Laufzeitfehler, weil ein fehlerhafter Wert drinsteht!

Nachdem ich den Codeteil deaktiviert habe funktioniert dein Makro mit der MsgBox Abfrage.
Aufwendig ist, jede einzelne Zelle von Formel in Werte umzuwandeln. Das geht viel einfacher.
Dazu ein geänderter Code von mir im Anhang. Ob du ihn einsetzen willst ist deine Sache.

Ich hoffe das sich damit dein langatmiges vba Problem endlich geklärt hat. Mal sehen ....

mfg Piet

Option Explicit


'Beispiel von Piet
Public Sub example_2()

Dim wksOverview As Worksheet
Dim rngToCheck As Range
Dim rngBereich As Range
Dim rngResult As Range
Dim rngCell As Range
Dim lngI As Long
Dim lngAntwort As Long
Dim iCalc As Integer
Dim blnCancel As Boolean
Dim lngFehler As Long

Set wksOverview = Tabelle4
Set rngToCheck = Tabelle7.Range("B2")

'** Fehlerwert in Zelle B2 verursacht Laufzeitfehler
'** ganze Auswertung ist völlig sinnlos, für die Katz
'If rngToCheck.Value = "" Then Exit Sub

wksOverview.Activate

With Application
iCalc = .Calculation
.EnableEvents = False
.Calculation = xlCalculationManual
End With

For lngI = 3 To wksOverview.Columns.Count
Set rngBereich = wksOverview.Columns(lngI)
lngFehler = 0
On Error Resume Next
Set rngResult = rngBereich.SpecialCells(xlCellTypeFormulas)
lngFehler = Err
On Error GoTo 0
If lngFehler = 0 Then
'** löscht ganzen Bereich statt Einzelzellen
Application.Goto rngResult, True
lngAntwort = MsgBox("Möchtest du das Ergebnis der Formeln speichern ?", _
vbYesNoCancel + vbQuestion + vbDefaultButton2, "Frage")
If lngAntwort = vbCancel Then
blnCancel = True
Exit For
End If
If lngAntwort = vbYes Then
rngResult.Value = rngResult.Value
End If
If blnCancel Then Exit For
Else
Exit For
End If
Next

With Application
.Calculation = iCalc
.EnableEvents = True
End With
End Sub
Anzeige
AW: vba code mit schleife ???
12.02.2024 13:50:46
Oppawinni
Wie ich schon in einem der vielen anderen Thread geschrieben habe...

Jedes mal, wenn das Makro aufgerufen wird, und dann die MsgBox bestätigt wird, soll die nächste Spalte beackert werden. Also
1. Macro-Aufruf: zähler steht auf 3
wenn danach die MsgBox mit Ok betätigt wird, Formeln in Spalte 3 ersetzen und Zähler hochsetzen, fertig.
2. Macro-Aufruf: zähler steht auf 4 .......... Formeln in Spalte 4 ersetzen.........
Es braucht also einen Zähler der ausserhalb des Makros gespeichert ist.

Das war das ganze Thema, wenn der TO das klar formuliert hätte, aber so dachte immer, was will er denn mit dem "wenn ich dann bei der MSG-Box auf ja klicke","Titel :VBA-Code mit Schleife" .... die MsgBox kriegt er doch mit seinem Chaos-Code bestenfalls einmal zu sehen.
Wozu die MSG-Box drei Knöpfe haben soll, erschließt sich mir zwar immer noch nicht, aber aber das Thema ist erledigt.
Anzeige
vba code mit schleife ??? immernoch keine Lösung
13.02.2024 01:55:37
Andreas Schmitt
AW: vba code mit schleife ??? immernoch keine Lösung
AW: vba code mit schleife ??? immernoch keine Lösung
13.02.2024 12:28:47
schauan
Hallo Andreas,

Du schreibst, dass Du den Code zusammengebastelt hast.

Verstehst Du, was z.B. hier passiert?

If Tabelle7.Range("B2").Value > ""

und wäre Dir auch klar, was das bedeutet?

Tabelle7.Range("B2").Value = 1

Sagt Dir dieser Satz etwas?

Verwende eine Variable., z.B. Spalte
Ob Du die dann irgendwo speicherst oder wie auch immer Du Dir den Stand merkst oder errechnest wie gesagt, mach Dir Gedanken über den Ablauf.

Wenn 3x ja, dann sollte es Dir doch gelingen, die Variable "Spalte" aus meinem Code
https://www.herber.de/forum/messages/1964794.html
an der richtigen Stelle in Deinem Code mit einem Zellwert zu befüllen bzw. den hochgesetzten Wert in diese Zelle zu speichern ...

Oder gelingt Dir das nicht? &#128543



Anzeige
AW: vba code mit schleife ??? immernoch keine Lösung
13.02.2024 13:23:05
Oppawinni
Hallo großer Meister,
Ich denke - und ich habe das jetzt schon mehrfach geschrieben -,
dass die Absicht des TO eine andere war, als wir alle dachten.
Siehe dazu z.B.
https://www.herber.de/forum/messages/1964853.html
und eine entsprechende Lösung habe ich extra in dem Post vor deinem noch einmal verlinkt.
Da sich der TO nicht bemüßigt fühlt, sich irgendwie dazu zu äußern, ist wohl jede weitere Bemühung sinnlos.
Vielleicht hast du das auch nicht mitbekommen, aber der TO möchte, dass sein "vorgegebener Code" beachtet wird.
D.h. dass du den nicht diskutieren musst.
"Immernoch keine Lösung" ist schon deshalb merkwürdig, weil der TO inzwischen wieder einen Thread auf gemacht hatte,
mit einem sehr ähnlichen Thema und es schien, dass er mit der dortigen Lösung zufrieden war.
Keine Ahnung was das hier noch soll.
Beschäftigungstherapie?
Anzeige
AW: vba code mit schleife ??? immernoch keine Lösung
13.02.2024 15:14:32
schauan
... war auch nur wg. seiner Antwort heute Nacht ... Ansonsten mach ich mit seinem code ja im Gegensatz zu den anderen Vorschlägen extra nix, der Part muss nur eingefügt werden. Ich bewerte auch nicht die Lauffähigkeit - er schrieb ja, dass es ansonsten läuft. Und nun ist hier für mich voraussichtlich auch Schluss &#127891
AW: Sorry, ich bin raus!!
12.02.2024 08:59:42
schauan

Jupp, das sieht alles ziemlich chaotisch aus &#128686



@Piet, bin übrigens ganz bei Dir was den Spaß in einem Forum und die Lösungsfindung betrifft.
Zudem poste ich Lösungen nicht nur für den TE. Zuweilen suchen ja auch andere was entsprechendes.
Offene Fragen sind nicht gerade prickelnd, wenn man was sucht und auf den ersten 5 Seiten kommen nur Treffer ohne Lösungen.

@Andreas, ich habe kürzlich irgendwem geantwortet, dass man sich erst mal detailliert Gedanken über den Ablauf machen soll:
https://www.herber.de/forum/messages/1964543.html

von mir nur soweit ein Ansatz zur Frage. Verwende eine Variable., z.B. Spalte
Ob Du die dann irgendwo speicherst oder wie auch immer Du Dir den Stand merkst oder errechnest wie gesagt, mach Dir Gedanken über den Ablauf.

If Antwort = vbYes Then

Spalte = Spalte + 1
GoTo 1:
...
Set rngBereich = Columns(Spalte)


Schaue Dir mal die Buttons über dem Eingabefeld hier an - Formatier-Tipps sowie die Reihe darunter. Kannst das auch testen, nimm dazu die Beitragsvorschau - musst das ja nicht absenden.
Anzeige
AW: vba code mit schleife ???
11.02.2024 22:03:52
onur
Und wenn, wirst du es sowieso nicht merken, da er ohne irgend einen Kommentar oder "Danke" einfach weiterzieht.
AW: vba code mit schleife ???
11.02.2024 22:11:25
Piet
Hallo Onur

da bald Karneval in Köln ist sage ich dazu: "die Karavane zieht weiter, der Sultan hät Dosch", "Gläser huu, komm loss uns fiere" ..

Ob er Danke sagt oder nicht, was juckt mich das? - Ich freuen mich im Forum zu sein und gute Arbeit zu leisten!
DAS ist mein persönlicher Gewinn, unabhängig ob es ein Danke gibt oder nicht. Ich bleibe geistig jung dabei!

mfg Piet.
AW: vba code mit schleife ???
11.02.2024 22:14:33
onur
Es geht ja nicht um das Danke allein.
Wenn du dir die Mühe machst, in deiner Freizeit eine Lösung findest und einen Code schreibst und du kriegst KEINERLEI Reaktion darauf, dann bist auch du sauer.
Anzeige
AW: vba code mit schleife ???
11.02.2024 22:51:57
Oppawinni
Was mich eher aufregt ist, dass der TO neue Threads auf macht, wieder den alten Sch.. postet, und wieder ohne code-tags, statt
mal auf die Frage einzugehen, wie er sich den Ablauf seines Programmes genau vorstellt.
Und dann kommt mal "funktioniert nicht", was uns alle sehr erhellt, zumal noch nicht einmal klar wird, auf welchen Code er sich bezieht,
weil inzwischen schon der Xte Thread offen ist. Sowas regt mich auf.
Ich bin jetzt aus dem Thema raus.
da kriegst du zuviel
12.02.2024 00:01:20
Oppawinni
Ich lach mich schlapp.
Der TO möchte, dass sich Piet bitte an seinen "Code" hält ..
TaTaa TaTaa TaTaa, Kölle Helllaauuuu
Anzeige
AW: da kriegst du zuviel
12.02.2024 00:38:15
onur
Da ist er wohl richtig stolz drauf.
AW: vba code mit schleife ???
11.02.2024 22:06:27
Piet
Hallo Andreas

dezente Worte, verstehe sie bitte nicht falsch! - Immer wieder einen neuen Thread eröffnen, immer mit dem alten kuriosen Code, damit gewinnst du im Forum keine Freunde. Du geht den Kollegen höchstens tierisch auf den Senkel. Das fördert keine Bereitschaft dir zu helfen.

Zum Glück haben wir Kölner viel Humor, auch wenn ich nicht in Köln lebe. Ich hoffe du findest eine Lösung.

mfg Piet

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige