21. august 2009 - 08:59Der er
15 kommentarer og 1 løsning
Tilføjelse til makro
Hej!
Har brug for en kodelinie som jeg kan sætte ind i en makro.
Det skal være således, at man får en fejlmelding, hvis ikke alle felter i et skema er udfyldt.
Altså, makroen skal først tjekke om cellerne A1, B1 og C1 alle er udfyldt inden den aktiveres. Hvis ikke de er udfyldt skal makroen ikke gennemføres og der skal komme en fejlmelding...
En mulighed: Sub test() If Not (Range("A1") <> "" And Range("B1") <> "" And Range("C1") <> "") Then MsgBox ("Indtastningen mangler i A1:C1") Else '<udfør makroen>
Sub test2() If ErAltUdfyldt = False Then MsgBox ("Indtastningen mangler i A1:C1") Else Gemskema End If End Sub
rem Functionen tester de enkelte celler i området A1-C1 rem Hvis blot een celle er tom afbrydes funtionen = false rem Ellers returneres True
Private Function ErAltUdfyldt() For Each Celle In Range("A1:C1").Cells If Celle = "" Then ErAltUdfyldt = False Exit Function End If Next ErAltUdfyldt = True End Function
Ok. Det skal vist skæres ud i pap... Har prøvet at indsætte, men kan ikke få det til at virke.
For at simplificere spørgsmålet brugte jeg A1-C1. Det drejer sig i virkeligheden om cellerne D9, D13, D17, L9, L13 og L17 som skal være udfyldt før "Gemskema" kan aktiveres.
Regnearket fungerer således at man indtaster i de nævnte celler, trykker på en knap der aktiverer makroen "Gemskema" som kopierer de indtastede data over i et andet ark og rydder nævnte celler til næste indtastning.
Skal jeg tilknytte ovenstående makro til knappen i stedet for "Gemskema", eller skal ovenstående være en del af "Gemskema" (i så fald, hvor skal den sættes ind)?
Well, det virker ikke, så har tydeligvis ikke gjort det rigtigt...
Sub test2() If ErAltUdfyldt = False Then MsgBox ("FEJL - Alle de 6 øverste celler SKAL udfyldes!") Else Gemskema End If End Sub
Rem Functionen tester de enkelte celler i cellerne D9;D13;D17;L9;L13;L17 Rem Hvis blot een celle er tom afbrydes funtionen = false Rem Ellers returneres True
Private Function ErAltUdfyldt() For Each Celle In Range("D9;D13;D17;L9;L13;L17").Cells If Celle = "" Then ErAltUdfyldt = False Exit Function End If Next ErAltUdfyldt = True End Function
Sub test2() If ErAltUdfyldt = False Then MsgBox ("FEJL - Alle de 6 øverste celler SKAL udfyldes!") Else gemSkema End If End Sub Private Sub gemSkema() MsgBox ("Skema gemmes") End Sub Rem Functionen tester de enkelte celler i cellerne D9;D13;D17;L9;L13;L17 Rem Hvis blot een celle er tom afbrydes funtionen = false Rem Ellers returneres True Private Function ErAltUdfyldt() Set område = Range("D9,D13,D17,L9,L13,L17")
For Each Celle In område.Cells If Celle = "" Then ErAltUdfyldt = False Exit Function End If Next ErAltUdfyldt = True End Function
Som jeg har forstået det, skal knappen aktivere den føromtalte kode, som undersøger om de 6 felter er udfyldt. Hvis ikke de er udfyldt, aktiveres fejlmeddelelsen, og hvis de er udfyldt aktiveres makroen "Gemskema"...
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.