Avatar billede HHA Professor
24. september 2020 - 15:27 Der er 11 kommentarer og
1 løsning

Hjælp til makro vedr. sum mm

Hejsa,

Jeg kæmper med at få lavet en makro til excel.
Hvis jeg markerer fx F22 til og med F26, så vil jeg have den til at ligge summen oppe i F21, når jeg fx trykker CTRL + t og det samtidigt skal den også gøre det med samme antal rækker i kolonnerne I, J, K, og L.
Den skal samtidigt vende JA i kolonne B til NEJ og i kolonne M fra JA til NEJ.
Kolonnerne B og M er så jeg kan vælge om indhold skal overføres eller ej, til et andet ark.

Formlen skal følge markeringen, da jeg kommer til at bruge det rundt i forskellige rækker og markeringen kan være en til flere rækker.
Kan man ikke ligge et billede her ind?
Det ville måske hjælpe med forståelsen (kan evt. sende på mail).

Nogen der kan/vil hjælpe mig her?
Avatar billede kim1a Ekspert
24. september 2020 - 19:16 #1
Er det rigtigt forstået:
Du markerer markerer et område i en kolonne (er det altid kolonne F). Så skal vbaen følgende:
Indsætte sum af markeringen i samme kolonne blot ovenover, dette skal den gentage for kolonnerne I, J, K og L (hvad nu hvis det ikke er i F du markerer?)
Samtidig skal den skrive Ja i kolonne B (på alle rækker du har markeret?) og Nej i kolonne M (samme spørgsmål)

Du kan ikke ligge billede ind, men du kan ligge noget i dropbox og linke til det.

Jeg tror det vigtigste er at du beskriver i generelle termer. VBAen kunne nemt opsnappe hvilke kolonner og rækker du markerer, men hvad nu hvis der i forvejen står noget i de celler ovenover det du ønsker at markerer?
Avatar billede jens48 Ekspert
24. september 2020 - 23:56 #2
Denne makro laver første del - summering i den kolonne du sætter cursoren i

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Range("F22:F26, I22:L26"), Target) Is Nothing Then
    Cells(21, Target.Column) = WorksheetFunction.Sum(Range(Cells(22, Target.Column), Cells(26, Target.Column)))
    End If
End Sub
Avatar billede HHA Professor
25. september 2020 - 14:29 #3
Avatar billede HHA Professor
26. september 2020 - 17:38 #4
Nu med et bedre billede.
Der står en forklaring på billedet.
Avatar billede HHA Professor
29. september 2020 - 10:33 #5
Prøver lige igen med en tydeligere forklaring.
Skal bruge en løsning der kan gøre flg.:
Hvis jeg markerer x antal celler i kolonne F og trykker CTRL + T, skal den skrive summen i cellen lige over den øverst markerede celle. Samtidigt skal den gøre det samme i kolonnerne I, J, K og L.
Den må gerne overskrive, hvis der skulle stå noget i dem.
Samtidigt skal den sørge for at der står JA i kolonne M  og sørge for at der står NEJ i kolonne B (ud for de markerede antal celler/rækker).
De celler med JA og Nej er lavet sådan, at man kan klikke på dem og efter behov vælge JA eller NEJ. Så den skal ikke fastholde dem til JA eller NEJ, kun skifte dem til det, når man kører formlen.
Håber det gav mening.
Avatar billede HHA Professor
29. september 2020 - 10:37 #6
jens48,

Jeg var nok ikke helt klar i mæglet med hvad jeg mente, så den formel du kom med, bruges kun hvis det er rækkerne 22 til 26.
Det kan være helt tilfældigt hvilke celler jeg markerer i kolonnen F.
Avatar billede jens48 Ekspert
29. september 2020 - 12:27 #7
Så prøv med denne:

Sub SUM()
Dim R1, R2 As Long
R1 = Selection.Rows(1).Row
R2 = Selection.Rows(1).Row + Selection.Rows.Count - 1
If Selection.Column = 6 Or (Selection.Column > 8 And Selection.Column < 13) Then
Selection.Rows(1).Offset(-1, 0) = WorksheetFunction.SUM(Selection)
End If
Range(Cells(R1, 2), Cells(R2, 2)) = "Nej"
Range(Cells(R1, 13), Cells(R2, 13)) = "Ja"
End Sub
Avatar billede HHA Professor
01. oktober 2020 - 10:00 #8
Hej jens48

Det var lige det jeg ikke kunne finde ud af 👍
Jeg kan heller ikke få mine evner til at række til at få den til følgende:
Når jeg markerer xx antal linjer i kolonne F, gør dent det den skal med din kode.
Den mangler dog at ligge summen oven over i kolonnerne I, J, K og L, samtidigt.
Det jeg mener er at når jeg laver markeringen i kolonne F, skal den det som du har kodet, dog skal den tage samme antal (som markeret i kolonne F) rækker i kolonne I, J, K og L og ligge summen oven på, lige som den gør i kolonne F.
Altså kun markering i kolonne F og den gør det automatisk i de ovenfor nævnte kolonner samtidigt.
Håber det giver mening.
Avatar billede jens48 Ekspert
01. oktober 2020 - 10:18 #9
Hvis du kun markerer i kolonne F kan denne makro btuges

Sub SUM()
Dim R1, R2 As Long
R1 = Selection.Rows(1).Row
R2 = Selection.Rows(1).Row + Selection.Rows.Count - 1
If Selection.Column = 6 Then
Selection.Rows(1).Offset(-1, 0) = WorksheetFunction.SUM(Selection)
Selection.Rows(1).Offset(-1, 3) = WorksheetFunction.SUM(Selection.Offset(0, 3))
Selection.Rows(1).Offset(-1, 4) = WorksheetFunction.SUM(Selection.Offset(0, 4))
Selection.Rows(1).Offset(-1, 5) = WorksheetFunction.SUM(Selection.Offset(0, 5))
Selection.Rows(1).Offset(-1, 6) = WorksheetFunction.SUM(Selection.Offset(0, 6))
End If
Range(Cells(R1, 2), Cells(R2, 2)) = "Nej"
Range(Cells(R1, 13), Cells(R2, 13)) = "Ja"
End Sub
Avatar billede HHA Professor
01. oktober 2020 - 10:44 #10
Hej jens48,

Du er sgu hurtig 😲
Lige det der skal til.
Du kommer med i min aftenbøn 👍👍
Tusind tak.
Jeg overvejer at tage et kursus i det.
Nogen man kan anbefale?

Tak igen igen.
Avatar billede jens48 Ekspert
01. oktober 2020 - 11:27 #11
Godt du kunne bruge det.
Jeg har for en del år siden deltaget i et 2-dages kursus hos 4D-konsulenterne, men ellers har jeg lært det meste ved blot at kaste mig ud i det, for eksempel ved at løse opgaver som denne. Det skal bruges dagligt. Ellers glemmer man det.
Avatar billede HHA Professor
01. oktober 2020 - 11:59 #12
Det kan jeg helt sikkert!
Sidder også og kigger på koderne, for at se hvad de enkelte linjer gør.
Vil jeg gerne tro det skal bruges for at huske det.

Endnu en gang tak!
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

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