Nochmal: Eine Konstante in einem Protokoll ersetzt

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: Nochmal: Eine Konstante in einem Protokoll ersetzt
von: Thorben
Geschrieben am: 21.02.2005 17:29:39
Hallo an alle VBA Fans!
Ich hab mal wieder ein kleines Problem. Damit es ein wenig einfachen ist, habe ich einmal die Arbeitsmappe hochgeladen: https://www.herber.de/bbs/user/18302.xls
Es handelt sich hierbei um ein Programm was Haus-zu-Haus-Verteilungen für unseren Gemeindebrief (kirchlich, also nicht kommerziell) organisieren kann.
Die Tabelle1 ist die Auszahlungsmaske, in die mittels Barcode die ausgegebenen Quittungen eingescannt werden. Es kann nun vorkommen, dass ein Verteiler auf einmal mehr Haushalte in seinem Bezirk hat als geplant (z.B. Neubaugebiet etc.) Bei der Auszahlung sollen diese mehr verteilten Hefte aber auch finaziell berücksichtig werden. Gebe ich nun in Zelle L10 einen Wert ein, egal ob größer oder kleiner, so wäre es gut wenn eine Msg-Box erscheinen würde, die Abfragt, ob die neue Haushaltsanzahl generell für den Bezirk übernommen werden soll oder nicht. Klickt man "JA" an, so müsste der Wert aus L10 in das Arbeitsblatt "Bezirksübersicht" und in das Arbeitsblatt "Historie" in die entsprechende Zeile kopiert werden. Clickt man auf "NEIN" soll lediglich der Wert in "Historie" kopiert werden. Um die entsprechende Zeile in Bezirksübersicht zu finden, kann am besten die Information des Bezirks verwendet werden (in Tabelle1, Zelle F9). Úm den Wert in "Historie" zu übernehmen, ist es wichtig, das ein anderer Indikator verwendet wird. Am besten wäre B12, da dieser wert in der gesamten Historie nur 1x vorkommen kann. Bezirk hingegen kann mehrfach vorkommen und ist deshalb bei Historie unbrauchbar.
Ich weiß, das ein solch komplexes Problem nicht leicht zu lösen ist. Ich würde mich jedoch sehr freuen, wenn mir einer helfen könnte.
Vielen Dank im Voraus.
Thorben

Bild

Betrifft: AW: Nochmal: Eine Konstante in einem Protokoll ers
von: Josef Ehrensberger
Geschrieben am: 21.02.2005 19:42:16
Hallo Thorben!
Viel Spass!
https://www.herber.de/bbs/user/18475.xls

Gruß Sepp
P.S.: Rückmeldung nicht vergessen!
Bild

Betrifft: AW: Nochmal: Eine Konstante in einem Protokoll ers
von: Thorben
Geschrieben am: 21.02.2005 20:01:28
Hallo Sepp,
vielen Dank, das klappt ja schon ganz gut.
Eine Sache funktioniert aber noch nicht: Es ist wichtig, das die Abfrage nach der Eingabe unbedingt verschiedene offen Möglichkeiten lässt. Ja und Nein können bleiben, allerdings: Klickt man "JA" an, so müsste der Wert aus L10 in das Arbeitsblatt "Bezirksübersicht" und in das Arbeitsblatt "Historie" in die entsprechende Zeile kopiert werden. Clickt man auf "NEIN" soll lediglich der Wert in "Historie" kopiert werden.
Also muss in beiden Fällen eine Aktion ausgelösst werden.
Kannst Du das noch ändern?
Vielen Dank
Thorben
Bild

Betrifft: AW: Nochmal: Eine Konstante in einem Protokoll ers
von: Josef Ehrensberger
Geschrieben am: 21.02.2005 20:04:11
Hallo Thorben!
Tausch' den Code gegen diesen!


      
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range
'Nur wirksam bei Änderung in "L10"
   If Target.Address = "$L$10" Then
'Wenn L10 nich leer und <> F10, dann
      If[L10] <> "" And[L10] <>[F10] Then
'Frage
         If MsgBox("Haushaltsanzahl übernehmen?", vbYesNo + vbQuestion, _
                           
"Frage") = vbYes Then
'Nummer aus F9 (replace()) in "Bezirksübersicht" suchen
            Set rng = Sheets("Bezirksübersicht").Range("A:A"). _
                        Find(what:=
CDbl(Replace([F9].Text, ".Bezirk""")), _
                        LookIn:=xlValues, LookAt:=xlWhole)
'Wenn gefunden, dann in entsprechende Zelle Wert aus L10 eintragen
               If Not rng Is Nothing Then
               rng.Offset(0, 3) =[L10]
               
End If
         
End If
'Nummer aus B12 in "Historie" suchen
            Set rng = Sheets("Historie").Range("V:V"). _
                        Find(what:=[B12].Text, _
                        LookIn:=xlValues, LookAt:=xlWhole)
'Wenn gefunden, dann in entsprechende Zelle Wert aus L10 eintragen
               If Not rng Is Nothing Then
               rng.Offset(0, 2) =[L10]
               
End If
         
      
End If
      
   
End If
End Sub 

     Code eingefügt mit Syntaxhighlighter 3.0


Gruß Sepp
P.S.: Rückmeldung nicht vergessen!
Bild

Betrifft: AW: Nochmal: Eine Konstante in einem Protokoll ers
von: Thorben
Geschrieben am: 21.02.2005 20:30:35
Hallo Sepp,
sorry, ein kleines Prob ist immernoch drin.
Ich muss jetzt leider ganz dringend weg und kann nicht mehr länger warten.
Vll kannst du ja dir nochmal meine anfangsbeschreibung durchlesen
vielen Dank#
Thorben
Bild

Betrifft: AW: Nochmal: Eine Konstante in einem Protokoll ers
von: Josef Ehrensberger
Geschrieben am: 21.02.2005 20:52:52
Hallo Thorben!
Sorry, aber ich weis nicht wo das problem liegt;-(

Gruß Sepp
P.S.: Rückmeldung nicht vergessen!
Bild

Betrifft: AW: Nochmal: Eine Konstante in einem Protokoll ers
von: Thorben
Geschrieben am: 22.02.2005 16:36:05
Hallo Sepp,
erst einmal wirklich vielen Dank, dass Du dir soviel Mühe gibst.
Ich ganz kleine Änderung habe ich allerding noch:
Der erste Fall, also wenn ich auf "JA" klicke ist soweit in Ordnung: Der geänderte Wert wird nur in der Bezriksübersicht im richtigen Bezrik eingetragen.
Jetzt hätte ich aber gerne noch einen zweiten Fall, nämlich den, wenn ich auf "Nein" clicke. Momentan passiert ja nichts. Ich möchte aber, dass zum einen genau das gleiche passiert wie im ersten Fall und zusätzlich an hand von der Zelle B12 (auf dem Worksheet Tabelle1)auch die entsprechende Zeile in Historie gesucht wird, und dann auch dort die veränderte Menge eingetragen hat. Macht dir keine Sorgen, der Text der dann in der MsgBox steht ist zwar von der Aussage falsch, wird aber noch geändert. Um den entsprechenden Wert in der Historie zu suchen ist es nur zwingend notwendig, dass der Inhalt der Zelle B12 verwendet wird, da dieser nur einmal vorkommen kann.
Ich hoffe, dass ich mich jetzt nun ein wenig verständlicher ausgedrückt habe. Solltest Du noch offene Fragen haben, steh ich dir gerne Rede und Antwort.
Vielen Dank
Thorben
Bild

Betrifft: AW: Nochmal: Eine Konstante in einem Protokoll ers
von: Josef Ehrensberger
Geschrieben am: 22.02.2005 20:52:13
Hallo Thorben
Hast du's wirklich getestet?
Wenn du auf "Ja" Klickst, wird in "Bezirksübersicht" und in "Historie" der
neue Wert eingetragen!
Bein "Nein" wird der neue Wert nur in "Historie" eingetragen!
Das war doch was du wolltest, oder?
Gruß Sepp
P.S.: Rückmeldung nicht vergessen!
Bild

Betrifft: AW: Nochmal: Eine Konstante in einem Protokoll ers
von: Thorben
Geschrieben am: 22.02.2005 21:52:38
Hallo Sepp,
danke für die Rückantwort. ja ich habs getestet. Das war der letzte Code, den du mir gegeben hast. Damit klappt es nicht:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range
'Nur wirksam bei Änderung in "L10"
   If Target.Address = "$L$10" Then
   
'Wenn L10 nich leer und <> F10, dann
      If [L10] <> "" And [L10] <> [F10] Then
      
'Frage
         If MsgBox("Haushaltsanzahl übernehmen?", vbYesNo + vbQuestion, _
                           "Frage") = vbYes Then
                           
'Nummer aus F9 (replace()) in "Bezirksübersicht" suchen
            Set rng = Sheets("Bezirksübersicht").Range("A:A"). _
                        Find(what:=CDbl(Replace([F9].Text, ".Bezirk", "")), _
                        LookIn:=xlValues, LookAt:=xlWhole)
                        
'Wenn gefunden, dann in entsprechende Zelle Wert aus L10 eintragen
               If Not rng Is Nothing Then
               rng.Offset(0, 3) = [L10]
               End If
         End If
         
'Nummer aus B12 in "Historie" suchen
            Set rng = Sheets("Historie").Range("V:V"). _
                        Find(what:=[B12].Text, _
                        LookIn:=xlValues, LookAt:=xlWhole)
                        
'Wenn gefunden, dann in entsprechende Zelle Wert aus L10 eintragen
               If Not rng Is Nothing Then
               rng.Offset(0, 2) = [L10]
               End If
         
      End If
      
   End If
End Sub

Hab ich einen falschen Code?
Vielen Dank,
Thorben
Bild

Betrifft: AW: Nochmal: Eine Konstante in einem Protokoll ers
von: Josef Ehrensberger
Geschrieben am: 22.02.2005 22:44:13
Hallo Thorben!
Das ist der Code!
In der Mappe die du hochgeladen hast, funzt es!
Hier nochmal dei Datei mit dem Code.
https://www.herber.de/bbs/user/18553.xls

Gruß Sepp
P.S.: Rückmeldung nicht vergessen!
Bild

Betrifft: AW: Nochmal: Eine Konstante in einem Protokoll ers
von: Thorben
Geschrieben am: 23.02.2005 22:21:16
Hallo Sepp,
ja, jetzt klappt es. Sorry, irgendwie war ich wohl zu blöd.
Wie muss ich den Code denn jetzt noch abändern, wenn ich Ihn über einen Button auslösen möchte?
Vielen Dank
Thorben
Bild

Betrifft: AW: Nochmal: Eine Konstante in einem Protokoll ers
von: Josef Ehrensberger
Geschrieben am: 24.02.2005 09:57:43
Hallo Thorben!
https://www.herber.de/bbs/user/18653.xls

Gruß Sepp
 Bild

Beiträge aus den Excel-Beispielen zum Thema "Nochmal: Eine Konstante in einem Protokoll ersetzt"