Avatar billede Bumle Mester
08. august 2016 - 18:53 Der er 4 kommentarer og
1 løsning

Vba msgbox hvis celle ved siden af en anden celle er blank

Hej derude,
Er det muligt, at lave en vba som gør, at hvis f.eks A1 er udfyldt, så må B1 ikke efterlades tom, når arket lukkes?
Og også omvendt, altså hvis B1 er udfyldt, så skal A1 også være det.
Skulle helst være sådan, at der popper en msgbox op, hvor jeg jo som bestemmer teksten i boxen.
Håber, at nogen kan hjælpe med det.
På forhånd tak.
Avatar billede store-morten Ekspert
08. august 2016 - 20:23 #1
Prøv denne makro i: Denne projektmappe
Private Sub Workbook_BeforeClose(Cancel As Boolean)
  If Not IsEmpty(Range("A1")) And IsEmpty(Range("B1")) Then
        MsgBox "Husk at udfylde celle B1", vbOKOnly + vbInformation
        Cancel = True
        Range("B1").Select
    End If
  If Not IsEmpty(Range("B1")) And IsEmpty(Range("A1")) Then
        MsgBox "Husk at udfylde celle A1", vbOKOnly + vbInformation
        Cancel = True
        Range("A1").Select
    End If
End Sub
Avatar billede Bumle Mester
08. august 2016 - 21:45 #2
Det var hurtigt.
Kan man egentlig lave noget tilsvarende, såsom hvis eksempelvis celle A1 indeholder en værdi mellem 1-1000, så skal den angive en bestemt tekst i celle B1 osv?
Det kan formentlig laves i betinget formatering, men er mest til vba.
Måske det skal oprettes i en ny tråd.
Får lige testet dit første foreslag i morgen, men du har jo vane for, at ramme rigtigt :-)
Avatar billede store-morten Ekspert
08. august 2016 - 22:15 #3
Private Sub Workbook_BeforeClose(Cancel As Boolean)
  If Not IsEmpty(Range("A1")) And IsEmpty(Range("B1")) Then
        MsgBox "Husk at udfylde celle B1", vbOKOnly + vbInformation
        Cancel = True
        Range("B1").Select
       
    Select Case Range("A1").Value
        Case 1 To 1000
            Range("B1").Value = "Værdien er mellem 1 og 1000"
        Case Else
            Range("B1").Value = "Værdien er uden for 1 og 1000"
        End Select

       
    End If
  If Not IsEmpty(Range("B1")) And IsEmpty(Range("A1")) Then
        MsgBox "Husk at udfylde celle A1", vbOKOnly + vbInformation
        Cancel = True
        Range("A1").Select
    End If
End Sub
Avatar billede Bumle Mester
09. august 2016 - 19:54 #4
Super det virker og mange tak.
Har fundet denne som du har fikset.
Vil bare lige høre om det kun er en gang, at den kører timeren eller om den kører med 5 minutters interval?
http://www.computerworld.dk/eksperten/spm/977049

Jeg pønser nemlig på, at få lavet en på luk og gem.
Har en opgavestyring på en Excel fil, som i workbook open starter en vba og derefter lukker og gemmer.
Men kunne godt tænke mig, at den lige ventede et par minutter med, at lukke.
Den skal dog køre vba ved opstart, men så vente lidt med at lukke ned.
Skal jeg oprette en ny tråd eller har du lige et hurtig fix :-)?
Avatar billede store-morten Ekspert
09. august 2016 - 20:29 #5
Den kører med 5 minutters interval.

Ja, opret en ny tråd ;-) Så kikker jeg på det.
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