02. december 2015 - 17:24Der er
7 kommentarer og 1 løsning
Tæller betinget af placering eller område
Hej eksperter,
Ved nogle om det er muligt, at lave en funktion som tæller, hvis jeg cut/paster en værdi fra en celle i et område til et andet? Altså hvis jeg cut/paster i et område fra A4:AO40 så skal den tælle og lægge værdien i G49, men den må ikke tælle i den funktion, hvis jeg cutter fra værdien udenfor det område. Eks: I celle AP:1 cutter jeg en værdi og paster den i A4:AO40 og det må den ikke tælle. Eks: Jeg cutter i A4:AO40 og paster i AP:1, så må den heller ikke tælle. Eks: Jeg cutter i A4:AO40 og paster i A4:AO40 og så skal den tælle.
Har lagt søvnløs hele dagen på arbejde for at løse det, men måtte opgive :-)
Sidder med en Excel mappe, hvor jeg både opretter værdier men også flytter værdier fra en celle til en anden. Eksempel: ark 1 opretter jeg en værdi f.eks 123456 i en tilfældig celle og så vil jeg gerne have en celle som tæller hver gang jeg gør det. Jeg kan også trække(klip-sæt ind) en værdi fra et arks celle til et andet arks celle og det skal den også tælle. Men der er så lige de givne betingelser som nævnt i tråden.
Har denne vba kode indtil videre som tæller alle ændringer i en celle:
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("A:F")) Is Nothing Then If Target <> "" Then Range("G1") = Range("G1") + 1 End If End Sub
Men mangler så en som fungere udfra de andre kriterier.
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("A4:AO40")) Is Nothing Then If Target <> "" Then Range("G50") = Range("G50") + 1 End If End Sub
Den tæller alle ændringer i området A4:AO40 og angiver hver gang en celle bliver ændret i celle G50. Denne del kører fint nok, men mangle så en ekstra som fungerer på samme måde, men udfra de givne kriterier øverst i tråden. Har prøvet med forskellige koder som så trækker nogle værdier fra hinanden i de forskellige resultat celler, men kunne ikke komme helt i mål.
Ok, sender er upload i morgen. Sagen er, at denne vba: Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("A4:AO40")) Is Nothing Then If Target <> "" Then Range("G50") = Range("G50") + 1 End If End Sub
Den tæller for hver gang jeg ændrer en celle, altså hvis jeg flytter et tal som står i celle A5 til celle A4, så er det 1 ændring i celle A4. Derfor kommer tallet 1 frem i celle G50 Flytter jeg bagefter tallet i celle B8 til celle D3 så skriver den tallet 2 i celle G50 osv.
Denne vba kode er som den skal være.
Næste ønske er en vba kode som gør følgende: Hvis jeg flytter en værdi fra en celle i området A4:AD40 til en celle i samme område, så skal den skrive tallet 1 i celle G49. Men hvis jeg flytter værdien i en celle i område AE4:AO40 til en celle i området A4:AD40, så må den ikke tælle i celle G49. Og hvis jeg flytter værdien i en celle i området A4:AD40 til en celle i området AE4:AO40, så må den ligeledes ikke tælle i celle G49.
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.