Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1036to1040
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

Schleife-Zielwertsuche

Schleife-Zielwertsuche
10.01.2009 12:42:31
Tally
Hallo VBA-Excel-Experten,
ich befasse mich erstmalig mit VBA und habe folgendes "Problem":
Die mit dem Makrorekorder erstellte Zielwertsuche der ersten Zeile soll als Schleife über eine Vielzahl von Zeilen laufen, bis die erste in Spalte "L" unbeschriftete Zeile kommt. Das Lehrbuch, das ich erworben habe, ist da wenig hilfreich! Sicher könnt Ihr mir helfen!
Besten Dank!
Tally
Range("AA11").Select
Selection.ClearContents
Range("Z11").Select
Range("Z11").GoalSeek Goal:=0, ChangingCell:=Range("AA11")

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Schleife-Zielwertsuche
10.01.2009 13:11:13
Tino
Hallo,
hier mal ein Beispiel für die nächste freie Zelle in Spalte L.
Sub FreieZelleSuchen()
Dim Zelle As Range
Set Zelle = IIf(IsEmpty(Range("L1")), Range("L1"), _
            IIf(IsEmpty(Range("L2")), Range("L2"), _
            Range("L1").End(xlDown).Offset(1, 0)))


Zelle.Select

End Sub


Meinst Du sowas?
Gruß Tino

Anzeige
AW: Schleife-Zielwertsuche
10.01.2009 13:47:00
Tally
Hallo Tino,
vielen Dank für Deine Bemühungen. Aber es geht ja vor allem um eine Schleife, in der die dargestellte Zielwertsuche bis zu der Zeile läuft, in der in Spalte "L" der letzte Eintrag steht.
Kannst Du, oder jemand anders, da auch helfen?
Mit Gruß
Tally
AW: Schleife-Zielwertsuche
10.01.2009 13:54:32
Tino
Hallo,
was möchtest Du jetzt?
erst schreibst Du
"bis die erste in Spalte "L" unbeschriftete Zeile kommt"
jetzt schreibst Du
"bis zu der Zeile läuft, in der in Spalte "L" der letzte Eintrag steht"
Warum benötigst Du eine Schleife um eine solche Zelle festzustellen?
Oder verstehe ich Deine Frage einfach nur falsch?
Gruß Tino
Anzeige
AW: Schleife-Zielwertsuche
10.01.2009 14:06:43
Tally
Hallo Tino,
ich bitte um Entschuldigung, wenn ich mich nicht verständlich ausgedrückt habe.
Ich benötige keine Schleife um die letzte beschriftete Zeile festzustellen, sondern ich möchte die angegebene Zielwertsuche durch alle Zeilen ab Zeile 11 bis zur letzten in Spalte "L" beschrifteten Zeile laufen lassen!
Konnte ich mich nun verständlich machen?
Mit Gruß
Tally
AW: Schleife-Zielwertsuche
10.01.2009 14:23:00
Tino
Hallo,
ok., hier mit Schleife und Prüfung.
Sub Schleife()
Dim Zelle As Range
Dim LRow As Long
'prüfen ob es Zellen zwischen L11 bis letzte gibt 
LRow = IIf(IsEmpty(Cells(Rows.Count, "L")), Cells(Rows.Count, "L").End(xlUp).Row, Cells(Rows.Count, "L").Row)
If LRow > 10 Then
'Schleife über alle Zelle ab L11 bis zur letzten gefüllten in L 
    For Each Zelle In Range("L11:L" & LRow)
     'hier sind Deine Zellen 
     Debug.Print Zelle.Address
    Next Zelle
End If

End Sub


Gruß Tino

Anzeige
AW: Schleife-Zielwertsuche
10.01.2009 15:01:00
Tally
Hallo Tino,
auch wenn ich Dich langsam nerve, aber ich bin ja dankbar, dass sich einer meines Problems annimmt! Immerhin konnte ich mich nun wohl mit meinem Anliegen verständlich machen. Nur die Schleife läuft sich in Zeile 11 tot! So sieht die Sache jetzt aus:

Sub Zielwertsuche1()
Dim Zelle As Range
Dim LRow As Long
'prüfen ob es Zellen zwischen L11 bis letzte gibt
LRow = IIf(IsEmpty(Cells(Rows.Count, "L")), Cells(Rows.Count, "L").End(xlUp).Row, Cells(Rows. _
Count, "L").Row)
If LRow > 10 Then
'Schleife über alle Zelle ab L11 bis zur letzten gefüllten in L
For Each Zelle In Range("L11:L" & LRow)
'hier sind Deine Zellen
Range("AA11").Select
Selection.ClearContents
Range("Z11").Select
Range("Z11").GoalSeek Goal:=0, ChangingCell:=Range("AA11")
Debug.Print Zelle.Address
Next Zelle
End If
End Sub


Hast Du immer noch eine Idee?
Mit Gruß
Tally

Anzeige
AW: Schleife-Zielwertsuche
10.01.2009 15:39:00
Tino
Hallo,
kannst Du eine Beispieldatei hochladen, wo sich der Code tot läuft?
Gruß Tino
Bis später.
10.01.2009 16:05:00
Tino
Hallo,
muss jetzt erst mal weg, bin heute Abend aber nochmal Online.
Vielleicht hast Du bis dahin die Beispieldatei hochgeladen.
Gruß Tino
AW: Bis später.
11.01.2009 11:16:13
Tally
Hallo Tino,
ich kann mich erst jetzt wieder mit der Problematik befassen! Ich habe mal die Datei auf das wesentliche gekürzt, aber wie kann ich die Datei für Dich zugänglich machen?
Mit Gruß
Tally
AW: Bis später.
11.01.2009 11:57:50
Tino
Hallo,
Userbild
gehe auf den Link "Hier geht es zum File-Upload" (beachte die Info die da steht),
nach dem Upload bekommst Du einen HTML Code,
diesen kopierst Du und fügst ihn in deine Nachricht ein.
Gruß Tino
Anzeige
AW: Bis später.
11.01.2009 13:00:00
Tally
Hallo Tino,
es war etwas schwierig, die Datei auf die geforderten 300 KB zu reduzieren. Es sind aber bei allen Kürzungen doch noch etwa 400 KB, aber es hat wohl geklappt. Allerdings ist bei den Kürzungen auch der Effekt nun ein anderer! Jetzt läuft die Zielwertsuche nicht mehr unendlich, sie bleibt mit einem Ergebnis stehen, wechselt aber nicht in die nächste Zeile, sondern bleibt in der Anfangszeile 11 stehen. Hier die Datei:
https://www.herber.de/bbs/user/58281.xls
Mit Gruß
Tally
keine Ahnung...
11.01.2009 13:38:00
Tino
Hallo,
das liegt daran, dass Deine Zielwertsuche sich über den gesamten Bereich erstreckt.
Leider kenne ich mich mit der Zielwertsuche nicht so genau aus, aber ich denke diese sollte nur einmal ausgeführt werden und durch die Schleife wird diese ständig neu berechnet bzw. ausgeführt.
Wozu benötigst Du die Schleife, verstehe ich immer noch nicht?
Gruß Tino
Anzeige
AW: keine Ahnung...
11.01.2009 15:24:01
Tally
Hallo Tino,
ich bewundere Deine Geduld!
Die Zielwertsuche wird benötigt, wenn man Formelausdrücke hat, deren Ergebnis zwar bekannt ist, die Variable und Abhängigen innerhalb der Formel aber nicht bekannt sind und sich mathematisch auch nicht direkt errechnen lassen. Wobei es natürlich nur eine Lösung geben darf, die sich aber nur durch Probieren ergibt. Bei der Zielwertsuche werden nun in einer Schleife Zahlen eingesetzt, die bei jedem Schleifendurchlauf um z.B. 0,001 erhöht werden, bis das vorgegebene Ergebnis erreicht wird. An sich eine tolle Sache. Aber doch sehr ermüdend, wenn man bei Excel in jeder Zeile neu (in meinem Fall einige hundert Zeilen) die Zielwertsuche aufrufen muss, die Zelle mit der Formel einsetzt, den bekannten Ergebniswert einsetzt und die Zelle benennt, in der der gesuchte Wert abgelegt werden soll. Da ist eine automatische Schleife natürlich die einzige sinnvolle Lösung!
Aber abgesehen vom Problem Zielwertsuche, vielleicht kannst Du mir zum Abschluss der Veranstaltung mal den Code einer Schleife aufschreiben, die durch alle Zeilen läuft, die z.B. in Spalte "A" Inhalte haben, z.B. Zeile 11 bis x, und dann für diese Zeilen z. B. jeweils den Inhalt der Spalten "H" und "K" addiert und das Ergebnis in Spalte "T" schreibt. Dann kann ich mir vielleicht anhand dieses Beispiel meine Zeilwertsuche hineinbasteln!
Mit Gruß
Tally
Anzeige
ok hier ist solch eine Schleife...
11.01.2009 15:43:55
Tino
Hallo,
...für die Spalte A, Kommentare stehen im Code.
Sub Schleife()
Dim Zelle As Range
Dim LRow As Long

'letzte gefüllte Zeile in Spalte A 
LRow = IIf(IsEmpty(Cells(Rows.Count, "A")), Cells(Rows.Count, "A").End(xlUp).Row, Cells(Rows.Count, "A").Row)
'prüfen ob überhaupt Zellen vorhanden in denen etwas steht.(ab einschließlich A11) 
If LRow > 10 Then

'Schleife über alle Zelle ab A11 bis zur letzten gefüllten in A 
    For Each Zelle In Range("A11:A" & LRow)
'       prüfe ob in Zelle nicht leer und ob in H und K kein Text steht (Text kann nicht addiert werden) 
        If Zelle <> "" And IsNumeric(Cells(Zelle.Row, "H")) And IsNumeric(Cells(Zelle.Row, "K")) Then
'         addier H und K schreibe Ergebnis in T 
          Cells(Zelle.Row, "T") = Cells(Zelle.Row, "H") + Cells(Zelle.Row, "K")
        End If
    
    Next Zelle

End If

End Sub


Gruß Tino

Anzeige
Besten Dank!
11.01.2009 17:48:00
Tally
Hallo Tino,
nun habe ich in das Muster Deiner Schleife meine Zielwertsuche hineingebastelt. Es läuft fantastisch durch meine maximal 620 Zeilen!
Intelligente Menschen finden eben letztendlich immer eine Lösung!
Also noch mal vielen Dank!
Einen ansonsten stressfreien Sonntag wünscht
Tally

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige