Jeg skal bruge en vba kode som benytter samme metode som sum.hvis formelen i "normal"-Excel. Jeg har eks. i A1 JA, A2 JA, A3 NEJ. B1 10, B2 10, B3 10. VBA-koden skal summere alt i kolonne B, hvis der står JA i A.
Jeg kan ikke bruge et excel-formel svar, det skal være i vba.
Hej supertekst, jeg havde selvfølgelig håbet på noget mere håndgribeligt, især fra din side, har fulgt dine tidligere svar, og mener nok du er manden der kan hjælpe. Hvordan forklarer jeg i en makro, at den kun skal summe på JA ?
For ræk = 1 To 65000 If Cells(ræk, 1) <> "" Then If Cells(ræk, 1) = "JA" Then total = total + Cells(ræk, 2) End If Else Cells(ræk, 2) = total Exit For End If Next ræk End Sub
Dit første forsøg fik jeg også ved at gøre som du sagde, optage en makro, men jeg skal bruge en variabel, så dit alternative er langt tættere på det jeg ønsker at arbejde hen imod. Jeg har måske ikke været eksplicit nok, men jeg skal til slut bruge nogle variabler (ved ikke hvor mange), det afgøres af hvad der står i kolonne A. (ikke boolean).
Alternativ svaret virker ikke helt endnu, men du er nok tæt på løsningen, jeg har erklæret ræk som en variabel og indsat range("E4").value = total. Det er afgørende at jeg kan kalde variablen til en given celle.
Jeps, i sidste ende skal jeg bruge en kode der opsamler nogle værdier fra kolonne B baseret på "grupper" som er i kolonne A. Værdierne skal sættes ind i et andet ark i samme projektmappe. Det skal bruges sammen med dataudtræk fra et erp-system, så jeg kender ikke altid antallet af grupper i kolonne A.
Rem Koden anbringes i det ønskede ark Rem ================================= Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) If Target.Column = 1 And Target.Value <> "" Then 'Hvis HØJREKLIK er i kolonne A (1) & celle udfyldt SumHvis Target.Value 'Anvend indhold som argument for optælling
End If Cancel = True End Sub Private Sub SumHvis(værdi) Dim total total = 0
For ræk = 1 To 65000 If Cells(ræk, 1) <> "" Then If Cells(ræk, 1) = værdi Then total = total + Cells(ræk, 2) End If Else Cells(ræk, 2) = total Exit For End If Next ræk End Sub
Den sidste kode er skrevet før jeg så dit næstsidste indlæg - er ved at omarbejde koden - vender tilbage senere - men beskriv gerne baggrunden for dit sidste indlæg.
Public Sub JaTotal1() Har fundet en metode som virker, men takker for Superteksts hårde indsats :-)
Dim dTotal As Double Dim i As Long With Range("a1:b3") For i = 1 To Cells(Rows.Count, "A").End(xlUp).Row If .Cells(i, 1) = "JA" Then dTotal = dTotal + .Cells(i, 2) Next i End With Range("e4").Value = dTotal End Sub
- ovenstående tæller antallet af "JA" 'er i 1. kolonne i det brugte data-område og lagrer resultatet i variablen Resultat (som jeg glemte at deklarere øverst, som enten Integer eller Long)
Synes godt om
Ny brugerNybegynder
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.