Avatar billede german Nybegynder
15. juli 2008 - 18:41 Der er 10 kommentarer og
1 løsning

Nestede løkker

Jeg har lidt kode, jeg kal have gentaget, men Alzheimer har åbenbart belastet min hjerne:

Jeg har følgende kode, som skal gentages 15 gange:
Dim Sum, Tmp as Double
For i = 0 to 40
if mid(cells(16+i,10),1,1)="P" then
tmp = mid(cells(16+i,10),2,3)
Sum = Sum + Tmp
end if
Cells(7,10) = Sum
- altså skal næste resultat placeres i cells(7,11) etc.

Ser frem til at høre fra jer :)
Avatar billede excelent Ekspert
15. juli 2008 - 19:09 #1
prøv :

Dim Sum, Tmp as Double

for t=1 to 15
For i = 0 to 40
if mid(cells(16+i,10),1,1)="P" then
Sum=Sum+ mid(cells(16+i,10),2,3)
end if
Cells(7,9+t) = Sum
next
next
Avatar billede german Nybegynder
16. juli 2008 - 09:41 #2
Hej Excelent! Tak for dit forsøg, der dog ikke virker.

Jeg har f.eks. 5 kolonner med værdier i 5 rækker - se nedenstående:

B10    B20    B30    B40    B50
B10    B20    B30    B40    B50
B10    B20    B30    B40    B50
B10    B20    B30    B40    B50
B10    B20    B30    B40    B50

1. kolonne skal give 50 i cells(7,10) 2. kolonne = 100 i cells(7,11) etc.

Min lille kode virker på kolonne 1 uden problemer, men jeg vil gerne loope igennem
kolonnerne og samle værdier der skal placeres i cells(7,x)

Håber du kan hjælpe:)
Avatar billede excelent Ekspert
16. juli 2008 - 09:59 #3
hvad med at indsætte en formel under hver kolonne

=SUM(--HØJRE(A1:A5;2))

afslut med ctrl+shift+enter
Avatar billede german Nybegynder
16. juli 2008 - 10:47 #4
tja, men jeg ville nu hellere have en nested løkke - det endet med at blive et stort ark, så den den løkkestruktur jeg ønsker, vil gøre det hurtigere - jeg har set mange af dine andre svar, så jeg er sikker på du også kan fikse dette
Avatar billede excelent Ekspert
16. juli 2008 - 12:43 #5
Marker område der skal summeres og kør koden
sum indsættes 2 rækker under markering for hver kolonne

Sub Summe()

k1 = ActiveCell.Column
k2 = Selection.Columns.Count
r1 = ActiveCell.Row
r2 = Selection.Rows.Count

For k = k1 To k1 + k2 - 1
For r = r1 To r1 + r2 - 1
Cells(r1 + r2 + 1, k) = Cells(r1 + r2 + 1, k) + Right(Cells(r, k), 2)
Next
Next

End Sub
Avatar billede german Nybegynder
16. juli 2008 - 14:24 #6
Tak for din kommentar - men hvordan får jeg lige trukket værdierne ud, når der
står et bogstav forrest i feltet - "if mid(cells(7,10),1,1)= "P"" ?
Avatar billede excelent Ekspert
16. juli 2008 - 14:33 #7
hvor i strengen står værdien/værdierne du skal bruge
og hvor mange skal med ?
Avatar billede excelent Ekspert
16. juli 2008 - 14:36 #8
Denne summerer de 2 sidste tal i strengen/cellen

Sub Summe()

k1 = ActiveCell.Column
k2 = Selection.Columns.Count
r1 = ActiveCell.Row
r2 = Selection.Rows.Count

For k = k1 To k1 + k2 - 1
For r = r1 To r1 + r2 - 1
If Left(Cells(r, k), 1) = "P" Then
Cells(r1 + r2 + 1, k) = Cells(r1 + r2 + 1, k) + Right(Cells(r, k), 2)
End If
Next
Next

End Sub
Avatar billede german Nybegynder
17. juli 2008 - 15:03 #9
Hej Excelent!
Tak for hjælpen, men jeg har selv lavet denne løsning der virker:

Dim Sum, Tmp As Double

For j = 0 To 183
For i = 0 To 24

If Mid(Cells(16 + i, 10 + j), 1, 1) = "B" Then
Tmp = Mid(Cells(16 + i, 10 + j), 2, 3)
Sum = Sum + Tmp
  End If
Next i
Cells(7, 10 + j) = Sum
Sum = 0
Next j

Endnu engang tak for hjælpen!!:)
Avatar billede excelent Ekspert
17. juli 2008 - 18:46 #10
velbekom
Avatar billede german Nybegynder
18. juli 2008 - 09:03 #11
point retur
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester