• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

gegevensvalidatie aanpassen

Status
Niet open voor verdere reacties.

SUVERMO

Gebruiker
Lid geworden
22 dec 2019
Berichten
478
Beste experten,

een paar vragen omtrent gegevensvalidatie.

1° Is het mogelijk om als er op een blauwe of rose cel geklikt wordt onmiddellijk de selecteerlijst te laten verschijnen, dus zonder op het pijltje te moeten drukken?
2° Nu is het zo dat wanneer er in een blauwe of rose cel een lettercombinatie wordt ingevuld er een aangepaste selecteerlijst verschijnt met enkel de teksten die deze lettercombinatie hebben. Kan dit ook nog als 1° mogelijk is?

Bestaat er een andere manier om het bedoelde te bereiken?
 

Bijlagen

  • Helpmij gegevensvaldatie.xlsm
    293,6 KB · Weergaven: 37
Bedankt Peter,

van Userform met listbox heb ik userform1 kunnen importeren en het gaat lukken denk ik
ik ga er mee verder, er komen waarschijnlijk nog vragen
nogmaals bedankt

mvg
 
Hallo,
ik heb het bestand wat aangepast en heb nu een probleem
Als er op een blauwe cel wordt geklikt wordt UserForm 1 op UserForm2 geplaatst
Hoe moeten deze 2 samen in een andere UserForm geplaatst worden?
 

Bijlagen

  • Userform met listbox bewerkt 281021.xlsm
    30,9 KB · Weergaven: 17
Een userform in een andere userform zetten gaat niet.
Leg eens duidelijk uit wat je het resultaat moet zijn.
 
Begin met het verwijderen van alle samengevoegde cellen.
 
beste Ad en Peter,

bedoeling is een UserForm met 2 invoerboxen,
 
ben ondertussen iets verder

Als er op een blauwe cel wordt geklikt wordt UserForm 1 gestart
Nu sluit het venster UserForm1 als er onder EEN of onder TWEE iets geselecteerd wordt
Bedoeling is dat het venster pas sluit als er op OK wordt gedrukt
Onder EEN moet er iets geselecteerd zijn anders mag OK niet werken, melding hiervoor als dat niet is gebeurt
kan iemand mij helpen om dit te bereiken
 

Bijlagen

  • Userform met listbox bewerkt 281021.xlsm
    33,4 KB · Weergaven: 25
zo?
Code:
Private Sub CommandButton1_Click()
If ListEEN1.ListIndex > -1 Then
    Unload Me
Else
    MsgBox "Niets geselecteerd"
End If
End Sub

Code:
Private Sub ListEEN1_click()
ActiveCell.Offset(0, 18) = ListEEN1.Value
End Sub

Code:
Private Sub ListTWEE1_click()
ActiveCell.Offset(0, 19) = ListTWEE1.Value
End Sub
 
Kun je uitleggen wat de zin van die samengevoegde cellen is ?
Wist je dat je kolommen kunt verbreden ?
Wist je dat samengevoegde cellen slecht samengaan met VBA ?
Wist je dat het voltooid deelwoord gebeurd altijd eindigt op een d ?
 
Laatst bewerkt:
zo?
Code:
Private Sub CommandButton1_Click()
If ListEEN1.ListIndex > -1 Then
    Unload Me
Else
    MsgBox "Niets geselecteerd"
End If
End Sub

Code:
Private Sub ListEEN1_click()
ActiveCell.Offset(0, 18) = ListEEN1.Value
End Sub

Code:
Private Sub ListTWEE1_click()
ActiveCell.Offset(0, 19) = ListTWEE1.Value
End Sub

ongeveer ja, ben er nog af en toe mee bezig, al veel veranderd, nog wel een paar vragen, die komen wel als ik er zelf geen oplossing voor vind
Code:
Private Sub CommandButton1_Click()
If ActiveCell.Offset(0, 18) = "" Then
MsgBox "Klik op een RAS"
Exit Sub
End If
If ActiveCell.Offset(0, 20) = "" Then
MsgBox "Klik op een KLEUR"
Exit Sub
End If

  Unload Me
ActiveCell.Offset(0, -3) = ActiveCell.Offset(0, 21).Value & ActiveCell.Offset(0, 22).Value
End Sub
Code:
Private Sub ListRas1_click()
ActiveCell.Offset(0, 18) = ListRas1.Value
End Sub
Private Sub TextRas1_Change()
ListRas1.List = ListRas2.List
  For j = ListRas1.ListCount - 1 To 0 Step -1
    If InStr(1, ListRas1.List(j, 0), TextRas1, 1) = 0 Then ListRas1.RemoveItem j
  Next j
End Sub
Private Sub ListVar1_click()
ActiveCell.Offset(0, 19) = ListVar1.Value
End Sub
Private Sub TextVar1_Change()
ListVar1.List = ListVar2.List
  For j = ListVar1.ListCount - 1 To 0 Step -1
    If InStr(1, ListVar1.List(j, 0), TextVar1, 1) = 0 Then ListVar1.RemoveItem j
  Next j
End Sub
Private Sub ListKleur1_click()
ActiveCell.Offset(0, 20) = ListKleur1.Value
End Sub
Private Sub TextKleur1_Change()
ListKleur1.List = ListKleur2.List
  For j = ListKleur1.ListCount - 1 To 0 Step -1
    If InStr(1, ListKleur1.List(j, 0), TextKleur1, 1) = 0 Then ListKleur1.RemoveItem j
  Next j
End Sub
Private Sub UserForm_Initialize()
UserForm1.Width = 645
ListRas2.List = [FILTER_RAS].Value
ListRas1.List = ListRas2.List
ListVar2.List = [FILTER_VARIETEIT].Value
ListVar1.List = ListVar2.List
ListKleur2.List = [FILTER_KLEUR].Value
ListKleur1.List = ListKleur2.List
End Sub
 
Kun je uitleggen wat de zin van die samengevoegde cellen is ?
Wist je dat je kolommen kunt verbreden ?
Wist je dat samengevoegde cellen slecht samengaan met VBA ?
Wist je dat het voltooid deelwoord gebeurd altijd eindigt op een d ?

samengevoegde cellen gebruik ik om een mooi print te hebben, zie plaatje.
kolommen kan men zelfs met een macro automatisch laten verbreden.
samengevoegde cellen geven soms inderdaad problemen in VBA, maar zijn met een paar omwegen oplosbaar
schrijffouten zijn al meer dan 50 jaar een probleem voor mij.
 

Bijlagen

  • samengevoegde cellen.jpg
    samengevoegde cellen.jpg
    263,4 KB · Weergaven: 26
Hallo,

bijgevoegd bestand werkt al goed, wel nog een paar schoonheidsfoutjes
kan iemand mij helpen bij het oplossen van de vragen in het plaatje?

bij voorbaat bedankt.

zelf zoek ik nog verder om fouten bij foutief gebruik te vermijden, o.a. voor bij drukken op knop Annuleren/sluiten en voor als kolom E wijzigd als de rest is ingevoerd
 

Bijlagen

  • UserForm1.jpg
    UserForm1.jpg
    198,4 KB · Weergaven: 23
  • Userform voor HelpMij.xlsm
    800,3 KB · Weergaven: 27
Laatst bewerkt:
om de sluitknop onbruikbaar te maken heb ik gevonden

https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/queryclose-event

volgende code heb ik toegevoegd in Userform1, en werkt juist

Code:
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Rem Bij klik op X (Sluiten) dan CommandButton2_Click (Annuleren en Sluiten) uitvoeren.
If CloseMode = 0 Then
Call CommandButton2_Click
End If
End Sub

Code:
Private Sub CommandButton2_Click()
ActiveCell.Offset(0, 18).Value = ActiveCell.Offset(-1, 18).Value
ActiveCell.Offset(0, 19).Value = ActiveCell.Offset(-1, 19).Value
ActiveCell.Offset(0, 20).Value = ActiveCell.Offset(-1, 20).Value
Unload Me
End Sub
 
Verlies je niet in overbodigheden zoals het uitschakelen van de sluitknop van het userform (die er niet voor niets staat).
Het gebruik van 'call' is al 30 jaar overbodig in VBA.
 
In dit geval as het nodig denk ik, zie plaatje.
Als er op het kruisje wordt geklikt mag het reeds geselecteerde
niet aanvaard worden als invoer, maar moet het dezelfde werking hebben
als klikken op Annuleren en Sluiten

In Private Sub Worksheet_SelectionChange(ByVal Target As Range) staat onder meer,
ActiveCell.Offset(-1, 18).Value = ActiveCell.Offset(0, 18).Value
ActiveCell.Offset(-1, 19).Value = ActiveCell.Offset(0, 19).Value
ActiveCell.Offset(-1, 20).Value = ActiveCell.Offset(0, 20).Value
 

Bijlagen

  • UserForm1.jpg
    UserForm1.jpg
    167,5 KB · Weergaven: 16
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan