Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Schleife programmieren und Zellen auslesen

Forumthread: Schleife programmieren und Zellen auslesen

Schleife programmieren und Zellen auslesen
Simon
Hallo zusammen
habe ein paar Fragen zum folgendem Sheet:
https://www.herber.de/bbs/user/66355.xls
Und zwar muss ich in Zelle C17 einen Startwert vorgeben (manuell eingeben und der nicht überschrieben werden soll), mit diesem dann in Zelle C23 ein Wert berechnet wird. Mit Zelle C23 wird Zelle C24 berrechnet und mit Zelle C24 wiederum ein neuer Wert in Zelle C22 der den Startwert aus C17 ersetzt. Mit C22 wird dann in einer neuen Schleife wieder C24 und C23 berrechnet und damit ein neuer Wert für Zelle C22 und so weiter.
Dies soll solang durchgeführt werden bis sich der Wert in Zelle C22 nicht mehr verändert, der Volumenstrom also seinen richtigen Wert erreicht hat.
Dann erst soll ein Durchsatzergebnis in Zelle C26 ausgegeben werden.
Ich hoffe Ihr könnt mir helfen, danke dafür schon mal
Gruß Simon
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Schleife programmieren und Zellen auslesen
07.12.2009 11:41:52
fcs
Hallo Simon,
da du ja iterativ rechnen willst, muss der Wert aus C17 zwangsläufig immer am Ende jedes Durchlaufs durch den Wert in C22 ersetzt werden.
Du muss also den Startwert in C17 in einer Variablen zwischenspeichern.
Nach Abschluß der Iteration muss dann der gemerkte Wert wieder in C17 eingetragen werden.
Nach meinem Verständnis schaut das dann etwa wie folgt aus. Die max. Anzahl an Iterationen muss du halt ggf. noch ein wenig anpassen.
Gruß
Franz
Private Sub CommandButton1_Click()
Dim dblDruckabfall As Double, dblDurchmesser As Double, dblLaenge As Double
Dim dblArrh As Double, dblTakt As Double, dblTnull As Double
Dim dblVisNull As Double, dblCarreauB As Double, dblCarreauC As Double
Dim dblVisExp As Double, dblDichte As Double, dblVolStromStart As Double
Dim dblVolStromNeu As Double, dblVisRep As Double, dblScherRep As Double
Dim dblDurchsatz As Double
Dim dblVolumenstromAlt As Double, lngCounter
'Variablen füllen
dblDruckabfall = Range("C3")
dblDurchmesser = Range("C4")
dblLaenge = Range("C5")
dblArrh = Range("C9")
dblTakt = Range("C10")
dblTnull = Range("C11")
dblVisNull = Range("C12")
dblCarreauB = Range("C13")
dblCarreauC = Range("C14")
dblVisExp = Range("C15")
dblDichte = Range("C16")
dblVolStromStart = Range("C17")
dblVolumenstromAlt = dblVolStromStart
lngCounter = 0
Do
'berechnungen durchführen
'beispiel
dblVolStromNeu = dblDruckabfall * dblLaenge
dblDurchsatz = dblVolStromNeu * dblDichte
'Ergebnis ausgeben
Range("C22") = dblVolStromNeu
Range("C26") = dblDurchsatz
If Abs(dblVolumenstromAlt - dblVolStromNeu) 

Anzeige
AW: Schleife programmieren und Zellen auslesen
07.12.2009 11:46:05
Simon
Hallo Franz
ich dank dir mal und werden es heute mittag testen und mich gegebenenfalls nochmals melden.
Gruß Simon
;
Anzeige
Anzeige

Infobox / Tutorial

Schleife programmieren und Zellen auslesen in Excel


Schritt-für-Schritt-Anleitung

Um eine Schleife in Excel zu programmieren, die Zellen ausliest und iterativ Berechnungen durchführt, folge diesen Schritten:

  1. Öffne das VBA-Editor: Drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.

  2. Füge ein Modul hinzu: Klicke auf Einfügen > Modul.

  3. Code eingeben: Kopiere den folgenden VBA-Code in das Modul:

    Private Sub CommandButton1_Click()
       Dim dblDruckabfall As Double, dblDurchmesser As Double, dblLaenge As Double
       Dim dblArrh As Double, dblTakt As Double, dblTnull As Double
       Dim dblVisNull As Double, dblCarreauB As Double, dblCarreauC As Double
       Dim dblVisExp As Double, dblDichte As Double, dblVolStromStart As Double
       Dim dblVolStromNeu As Double, dblVisRep As Double, dblScherRep As Double
       Dim dblDurchsatz As Double
       Dim dblVolumenstromAlt As Double, lngCounter As Long
    
       'Variablen füllen
       dblDruckabfall = Range("C3")
       dblDurchmesser = Range("C4")
       dblLaenge = Range("C5")
       dblArrh = Range("C9")
       dblTakt = Range("C10")
       dblTnull = Range("C11")
       dblVisNull = Range("C12")
       dblCarreauB = Range("C13")
       dblCarreauC = Range("C14")
       dblVisExp = Range("C15")
       dblDichte = Range("C16")
       dblVolStromStart = Range("C17")
       dblVolumenstromAlt = dblVolStromStart
       lngCounter = 0
    
       Do
           'berechnungen durchführen
           dblVolStromNeu = dblDruckabfall * dblLaenge
           dblDurchsatz = dblVolStromNeu * dblDichte
    
           'Ergebnis ausgeben
           Range("C22") = dblVolStromNeu
           Range("C26") = dblDurchsatz
    
           If Abs(dblVolumenstromAlt - dblVolStromNeu) < 0.01 Then Exit Do
           dblVolumenstromAlt = dblVolStromNeu
           lngCounter = lngCounter + 1
           If lngCounter > 100 Then Exit Do 'max. Iterationen
       Loop
    End Sub
  4. Füge einen Button hinzu: Gehe zurück zu Excel, füge einen Button (Formularsteuerelement) hinzu und verlinke ihn mit dem oben erstellten Makro.

  5. Startwert eingeben: Setze den Startwert in Zelle C17, bevor du den Button drückst.


Häufige Fehler und Lösungen

  • Fehler: "Typenkonflikt"
    Lösung: Stelle sicher, dass alle Zellen, die du ausliest (z.B. C3, C4, C5), numerische Werte enthalten.

  • Fehler: "Schleife läuft unendlich"
    Lösung: Überprüfe die Bedingung in der Schleife und stelle sicher, dass es eine Möglichkeit gibt, die Schleife zu beenden (z.B. durch die Anzahl der Iterationen).

  • Fehler: "Zelle wird nicht aktualisiert"
    Lösung: Stelle sicher, dass die Zellreferenzen korrekt sind und dass die Berechnungen in der Schleife korrekt implementiert sind.


Alternative Methoden

Wenn du keine VBA verwenden möchtest, kannst du auch die Funktion „Iterative Berechnung“ in Excel aktivieren. Gehe hierzu zu:

  1. Datei > Optionen > Formeln.
  2. Aktiviere die Option „Iterative Berechnung“.
  3. Setze einen Startwert in C17 und verwende Formeln in C22 und C23, die sich auf C22 beziehen.

Praktische Beispiele

Hier ist ein einfaches Beispiel, wie man eine iterative Berechnung in Excel ohne VBA durchführen kann:

  • Setze in Zelle C17 den Startwert (z.B. 100).
  • In Zelle C23 kannst du die Formel =C17*1.1 verwenden, um einen neuen Wert zu berechnen.
  • In Zelle C22 setze die Formel =C23-10, um den Wert weiter zu berechnen.
  • Aktiviere die iterative Berechnung, damit Excel die Formeln immer wieder aktualisiert, bis eine bestimmte Bedingung erfüllt ist.

Tipps für Profis

  • Verwende Application.ScreenUpdating = False am Anfang deines Makros, um die Berechnungsgeschwindigkeit zu erhöhen, und setze es am Ende wieder auf True.
  • Nutze Debugging: Verwende Debug.Print innerhalb deiner Schleife, um Werte zu überwachen und Fehler schnell zu identifizieren.
  • Dokumentiere deinen Code: Füge Kommentare hinzu, um die Absicht hinter jedem Teil deines Codes zu erklären, besonders wenn du mit komplexen Berechnungen arbeitest.

FAQ: Häufige Fragen

1. Wie viele Iterationen sollte ich einfügen?
Die maximale Anzahl an Iterationen hängt von der Komplexität deiner Berechnungen ab. Ein Wert von 100 kann in vielen Fällen ausreichend sein, aber du solltest dies anpassen.

2. Kann ich die Schleife anpassen, um andere Zellwerte zu verwenden?
Ja, du kannst die Zellreferenzen in deinem VBA-Code oder in deinen Formeln jederzeit anpassen, um mit anderen Werten zu arbeiten.

3. Was mache ich, wenn ich einen Fehler in meiner Berechnung habe?
Prüfe die Zellreferenzen und stelle sicher, dass alle notwendigen Werte korrekt eingegeben wurden. Verwende Debug.Print, um die Werte in der Schleife zu überprüfen.

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