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 :-)
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
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.