24. marts 2007 - 16:40Der er
23 kommentarer og 1 løsning
Commandbutton+msgbox
Hejsa
Hvordan er koden hvis man har en commandbutton i en userform. Når man trykker på commandbutton så skal der kommer en msgbox e.l. hvor man kan taste hvilken værdi man vil søge efter i sit excel ark i kolonne B.
Herefter kommer en ny msgbox som spørger hvilken værdi man vil søge efter i kolonne F.
Findes værdierne i kolonne B og F (på samme række), skal den regne summen af kolonne G ud fra de givne rækker som opfylder kriteriet og vise summen i en boks.
Herefter skal man bare kunne trykke ok og komme tilbage til userformen.
Værdi nr. 1 den skal søge efter står i kolonne A fra række 11 til uendeligt (der kommer flere og flere rækker til) Værdi nr. 2 den skal søge efter står i kolonne F fra række 11 til uendeligt (der kommer flere og flere rækker til)
Den skal summere kolonne G fra række 11 til uendeligt
Alle værdier er nummeriske.
Og den skal selvfølgelig kun summere de værdier i kolonne G hvor kriterierne er opfyldt
Dobbeltklik på din knap i VBA-editoren indsæt følgende kode imellem de 2 linie den kikker i kolonne B og F er det B eller A ?
Dim b, f, bværdi, fværdi, tal, last
last = Cells(65500, 2).End(xlUp).Row b = InputBox("Værdi i kolonne B ") f = InputBox("Værdi i kolonne F ") On Error GoTo ud bværdi = Application.WorksheetFunction.Match(b, Range("b11:b" & last), 0) fværdi = Application.WorksheetFunction.Match(f, Range("f11:f" & last), 0)
If bværdi = fværdi Then tal = Application.WorksheetFunction.Sum(Range("g11:g" & bværdi)) End If MsgBox ("") & tal
ud: If bværdi = Empty Then MsgBox ("Ingen match i kolonne B") If fværdi = Empty Then MsgBox ("Ingen match i kolonne F")
Findes værdierne i kolonne B og F (på samme række), skal den regne summen af kolonne G ud fra de givne rækker som opfylder kriteriet og vise summen i en boks.
prøv lige denne kode i stedet for, så tager vi resten derfra
Dim b, f, tal, last, rk Sheets("Ark1").Activate last = Cells(65500, 2).End(xlUp).Row b = InputBox("Værdi i kolonne B ") f = InputBox("Værdi i kolonne F ")
For t = 11 To last If Cells(t, 2) = CDec(b) And Cells(t, 6) = CDec(f) Then rk = t: Exit For Next
tal = Application.WorksheetFunction.Sum(Range("g11:g" & rk))
Jeg mener selvfølgelig kolonne B (det går lidt for hurtigt nogle gange).
Den virker heller ikke, da den tager værdien i kolonne B som matcher og hvis værdien i kolonne f også matcher så ligger den alle tal sammen i kolonne g fra række 11 til den matchende række.
Altså i ovenstående eksempel hvis man skrive (A)B=52 og F=15 så bliver resultatet (10+10+2+25+15)=62.
Her skal den kun skrive 15 da det er den eneste linie som opfylder betingelserne.
Dim b, f, tal, last, t Sheets("Ark1").Activate last = Cells(65500, 2).End(xlUp).Row b = InputBox("Værdi i kolonne B ") f = InputBox("Værdi i kolonne F ")
For t = 11 To last If Cells(t, 2) = CDec(b) And Cells(t, 6) = CDec(f) Then tal = tal + Cells(t, 7) Next
Men måske du gider at tilføje så den skriver fejlmeddelelserne. Både efter inputbox 1 og 2. Hvis den ikke finder værdierne i henholdvis kolonne B og F.
Og så skal den ved annuller af både inputbox 1 og to vende tilbage til userformen. Lige nu skriver den en fejlmeddelelse.
last = Cells(65500, 2).End(xlUp).Row b = InputBox("Værdi i kolonne B ") f = InputBox("Værdi i kolonne F ") If b = "" Or f = "" Then Exit Sub For t = 11 To last If Cells(t, 2) = CDec(b) And Cells(t, 6) = CDec(f) Then tal = tal + Cells(t, 7) Next If tal = 0 Then MsgBox ("Fandt ingen række med valgte værdier"): Exit Sub MsgBox ("") & tal
glemte lige den skulle vende tilbage til formen ved Cansel efter hvert input
Dim b, f, tal, last, t Sheets("Ark1").Activate
last = Cells(65500, 2).End(xlUp).Row b = InputBox("Værdi i kolonne B ") If b = "" Then Exit Sub f = InputBox("Værdi i kolonne F ") If f = "" Then Exit Sub For t = 11 To last If Cells(t, 2) = CDec(b) And Cells(t, 6) = CDec(f) Then tal = tal + Cells(t, 7) Next If tal = 0 Then MsgBox ("Fandt ingen række med valgte værdier"): Exit Sub MsgBox ("") & tal
Tusind tak for hjælpen...Rigtig godt du kunne løse dette for mig.
Kom med et svar så får du point...
P.S. jeg har et andet spørgsmål igang som du meget gerne må kigge på, hvis du har tid/lyst. (http://www.eksperten.dk/spm/768617). Se kommentarerne 23/03-2007 23:28:29 og 24/03-2007 12:28:10
Jeg ville rigtig meget gerne have løst disse problemer...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.