Avatar billede hb5v6 Nybegynder
08. december 2011 - 13:06 Der er 7 kommentarer

VBA - IF "Empty"

Jeg har i mit regneark lavet en userform, hvor man skriver noget ind der gemmer sig i Validation.inputmessage til den aktive celle.

Det ser sådan her ud for knappen når der er indtastet:
Private Sub CommandButton1_Click()

Dim strName As String

strName = TextBox2.Text

    With Selection.Validation
        .Delete
        .Add Type:=xlValidateInputOnly, AlertStyle:=xlValidAlertStop, Operator _
        :=xlBetween
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = "Noter"
        .ErrorTitle = ""
        .InputMessage = strName
        .ErrorMessage = ""
        .ShowInput = True
        .ShowError = True
    End With
   
    MsgBox "Følgende bliver nu indsat:" & vbNewLine & vbNewLine & strName
   
    Unload Me
   
End Sub

Jeg vil gerne have at når man ønsker at skrive noget i inputmessage igen, så henter den hvad der står før, hvilket jeg gør ved følgende:
TextBox2.Value = Selection.Validation.InputMessage

Men den giver så fejl, hvis der ikke står nogen inputmessage i forvejen. Hvordan løser jeg dette?
Avatar billede Ialocin Novice
08. december 2011 - 13:30 #1
Hej hb5v6

Et skud i tågen ...

Hvad med:

If Selection.Validation.InputMessage <> "" then

    TextBox2.Value = Selection.Validation.InputMessage

end If


Med venlig hilsen, Nicolai
Avatar billede hb5v6 Nybegynder
08. december 2011 - 13:37 #2
Har prøvet:
Private Sub UserForm_Initialize()

If Selection.Validation.InputMessage <> "" Then

TextBox2.Value = Selection.Validation.InputMessage

End If

End Sub

---

Jeg får følgende fejl:
Run-time error '1004':

Application-defined or object-defined error

---
Avatar billede Ialocin Novice
08. december 2011 - 14:02 #3
Hej hb5v6

Hvad så med:

If IsEmpty(Selection.Validation.InputMessage) = True Then

        MsgBox "Input message er tom"
   
  Else
   
        TextBox2.Value = Selection.Validation.InputMessage

End If


Med venlig hilsen, Nicolai
Avatar billede hb5v6 Nybegynder
08. december 2011 - 14:30 #4
Det giver samme fejl.. og peger desuden på knappen der gør at userformen loader:

Sub Button9_Click()

    Load UserForm2                <----- Markeret med gult
    UserForm2.Show
   
End Sub
Avatar billede hb5v6 Nybegynder
08. december 2011 - 15:09 #5
Jeg fandt ud af det :)

Gjorde følgende:

On Error Resume Next

        If ActiveCell.SpecialCells(xlCellTypeSameValidation).Cells.Count < 1 Then
       
            TextBox2.Value = "Indsæt note"
           
        Else
       
            TextBox2.Value = Selection.Validation.InputMessage
       
        End If

On Error GoTo 0


---

Smid et svar, så får du point. Tak for hjælpen
Avatar billede hb5v6 Nybegynder
08. december 2011 - 15:15 #6
Jeg har dog stadig ét problem..

Hvis jeg Copy paster noget ind i textboksen får jeg fejl:
Run-time error '1004':
Application-defined or object-defined error


Fx. hvis jeg ønsker at kopiere ovenstående indlæg ind.

Er der grænser hvor hvad inputmessage kan indeholde?
Avatar billede Ialocin Novice
08. december 2011 - 22:59 #7
Hej hb3v6

Umiddelbart ved jeg om der er et maks, hvad angår inputmessage ?
Og med henyn til pointene, så har jeg vist ikke gjort mig fortjent til dem :o)

Med venlig hilsen, Nicolai
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