Chavalito Skrevet 17. oktober 2021 Del Skrevet 17. oktober 2021 (endret) Jeg har et lite problem med en Excel makro, se nedenfor. Den skal sjekke celle AG87 (sum av celler B87 – AF87) mot celle AH87 hvor det er lagt inn maks sum tillatt, og hvis maks sum overskrides, hopper det opp en melding. Funker greit nok, men problemet er at hvis verdien i AG87 er for høy, hopper den hersen meldingen opp uansett hvilken celle det blir skrevet i på det regnearket. Det samme gjelder for de andre cellene som er i makroen. Så makroen kan ikke brukes. Jeg har prøvd å finne noe brukbart på nettet, men null luck så langt. Noen som har en liten ide om hvordan jeg skal fikse dette? Private Sub Worksheet_Change(ByVal Target As Range) If Range("AG87") > Range("AH87") Then MsgBox "Cuidado! Limite de Comer fuera de casa superado!" ElseIf Range("AG102") > Range("AH102") Then MsgBox "Cuidado! Limite de Informática superado!" ElseIf Range("AG103") > Range("AH103") Then MsgBox "Cuidado! Limite de Juegos superado!" ElseIf Range("AG109") > Range("AH109") Then MsgBox "Cuidado! Limite de Vinos, Martini, Cafes fuera de casa superado!" End If End Sub Endret 22. oktober 2021 av Chavalito Lenke til kommentar
trn100 Skrevet 18. oktober 2021 Del Skrevet 18. oktober 2021 Er ikke helt sikker på at jeg skjønner hva du mener, men du kan jo velge å kjøre rutinen kun når det skjer endringer i spesifikke felt? Private Sub Worksheet_Change(ByVal Target As Range) 'Trigges ved alle endringer i arket If Target.Adress = "$A$87" Then 'Sjekker om det er A87 som er endret og kjører rutinen hvis det er tilfelle. "Kjør rutine" End If End Sub Lenke til kommentar
Chavalito Skrevet 18. oktober 2021 Forfatter Del Skrevet 18. oktober 2021 Ja, jeg er klar over at makroen kjører ved enhver endring i arket, og det er ikke meningen. Prøvde det du foreslår, men funker ikke det heller, mulig jeg gjorde det feil da. Lenke til kommentar
trn100 Skrevet 18. oktober 2021 Del Skrevet 18. oktober 2021 Jeg er som sagt usikker på hva som skal trigge makroen din? Er det når det blir skrevet noe inn i AG87 eller er AG87 en beregnet celle hvor du vil ha en sjekk når innholdet forandrer seg? Lenke til kommentar
Chavalito Skrevet 18. oktober 2021 Forfatter Del Skrevet 18. oktober 2021 Sorry very big, min feil. Jeg glemte å si at AG87 har en formel som beregner sum av B87 - AF87. 🙂 Så når summen i AG87 overskrider maks tillatt, skal makroen vise advarsel. Lenke til kommentar
buitre Skrevet 20. oktober 2021 Del Skrevet 20. oktober 2021 (endret) I tillegg til AH cellene som holder max verdiene du sjekker mot, kan du lagre verdien av AG i en annen celle, for eksempel AI, og utvide if setningen til å sjekke AG cellen mot AI. Start AI cellen med verdi 0. If (Range("AG87") > Range("AH87")) AND NOT (Range("AG87") == Range("AI87")) Then Range("AI87") = Range("AG87") MsgBox "Cuidado! Limite de Comer fuera de casa superado!" End If AI verdien vil kun lagre AG verdi da den endrer seg. Har ikke testet, men er rimelig sikker på at logikken funker. PS: Hvis AH cellen ikke er konstant, bør AI cellen inneholde AG-AH, dvs differansen mellom verdiene Endret 20. oktober 2021 av buitre 1 Lenke til kommentar
Chavalito Skrevet 20. oktober 2021 Forfatter Del Skrevet 20. oktober 2021 Tusen hjertelig, buitre. Det opplegget funker knoge ser det ut som. Og AH cellen er normalt konstant da det er en begrensning som ikke skal røres (normalt da). Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå