Hallo slimmerikken,
Ik ben op zoek naar de juiste manier om het starten van een UserForm te verbinden aan de voorwaardelijke check op dubbele waarden in een bepaalde kolom op een andere sheet dan waar de knop op staat die het UserForm start.
Op de eerste sheet staat een knop die het UserForm (UF1) start. Het werkt goed en mijn UserForm doet ook wat het moet doen. Het plaatst ingevulde gegevens op de juiste rijen en haalt ook gegevens op die al eerder ingevuld waren.
Dit werkt op basis van een sleutelnummer en dit sleutelnummer mag in de bewuste kolom maar 1x voorkomen anders loopt de boel spaak.
De sheet waar de kolom op staat wordt handmatig gevuld vanuit een andere query. En dit gebeurt met copy/paste. Dit sluit ook gelijk trucjes met voorwaardelijke opmaak e.d. uit. De opmaak van de kolom wordt met copypaste ook overschreven. Ook blijkt het gewoon valideren van de invoer van cellen dat er geen dubbele waarden in mogen niet te werken. Wel wanneer er getypt wordt maar niet wanner het gecopypaste wordt.
Dus nu wil ik dat de macro die het formulier showt, achter de knop, eerst de controle uitvoert op dubbele waarden.
De consequentie van deze check moet zijn dat zolang er dubbele waarden zijn het formulier niet start.
Ook wil ik dat er een mssgbox start waarin gewezen wordt op het bestaan van de dubbele invoer.
Het liefst met een optie naar de betreffende worksheet te gaan en dan direct te zien om welke cellen het gaat (bijvoorbeeld met kleur van de cellen) (ik twijfel nog of ik ook een optie wil hebben waarmee excel automatisch de dubbele cellen leegmaakt. dit wil ik als optie wel voorleggen aan de mensen die ermee moeten gaan werken)
Probleem. Het werkt niet. Zodra ik de controle koppel aan het event change worksheet op het werkblad zelf gaat in ieder geval de detectie van dubbele waarden goed maar nu ik het wil koppelen aan deze knop lukt het me niet de juiste worksheet aan te wijzen. Ik heb het geprobeerd in de formule voor Range en zoals het bijgevoegde stukje code met with.
En de opties verbonden aan de mssgebox werken ook niet maar dit mag dus ook een enkele handeling zijn.
Dubbele waarden = mssgbox met deze melding & retour naar werkblad om het zelf aan te passen (liefst met arcering van de bewuste cellen.
Ik ben op zoek naar de juiste manier om het starten van een UserForm te verbinden aan de voorwaardelijke check op dubbele waarden in een bepaalde kolom op een andere sheet dan waar de knop op staat die het UserForm start.
Op de eerste sheet staat een knop die het UserForm (UF1) start. Het werkt goed en mijn UserForm doet ook wat het moet doen. Het plaatst ingevulde gegevens op de juiste rijen en haalt ook gegevens op die al eerder ingevuld waren.
Dit werkt op basis van een sleutelnummer en dit sleutelnummer mag in de bewuste kolom maar 1x voorkomen anders loopt de boel spaak.
De sheet waar de kolom op staat wordt handmatig gevuld vanuit een andere query. En dit gebeurt met copy/paste. Dit sluit ook gelijk trucjes met voorwaardelijke opmaak e.d. uit. De opmaak van de kolom wordt met copypaste ook overschreven. Ook blijkt het gewoon valideren van de invoer van cellen dat er geen dubbele waarden in mogen niet te werken. Wel wanneer er getypt wordt maar niet wanner het gecopypaste wordt.
Dus nu wil ik dat de macro die het formulier showt, achter de knop, eerst de controle uitvoert op dubbele waarden.
De consequentie van deze check moet zijn dat zolang er dubbele waarden zijn het formulier niet start.
Ook wil ik dat er een mssgbox start waarin gewezen wordt op het bestaan van de dubbele invoer.
Het liefst met een optie naar de betreffende worksheet te gaan en dan direct te zien om welke cellen het gaat (bijvoorbeeld met kleur van de cellen) (ik twijfel nog of ik ook een optie wil hebben waarmee excel automatisch de dubbele cellen leegmaakt. dit wil ik als optie wel voorleggen aan de mensen die ermee moeten gaan werken)
Probleem. Het werkt niet. Zodra ik de controle koppel aan het event change worksheet op het werkblad zelf gaat in ieder geval de detectie van dubbele waarden goed maar nu ik het wil koppelen aan deze knop lukt het me niet de juiste worksheet aan te wijzen. Ik heb het geprobeerd in de formule voor Range en zoals het bijgevoegde stukje code met with.
Code:
Sub Veredelde_Informatie_Knop2_BijKlikken()
With Sheets("Selectie")
On Error Resume Next
If WorksheetFunction.CountIf(Range("A2:A"), Target.Value) > 1 Then
If MsgBox("Het nummer komt meer dan 1x voor in de eerste kolom. Je kunt nu niet verder naar het formulier. Kies je YES dan heb je de mogelijkheid om het zelf, handmatig aan te passen. Kies je NO dan verwijderd Excel automatisch de dubbele invoer en zal het formulier openen.", vbYesNo, "Dubbele waarde") = vbNo Then Target.Value = ""
Else: UF1.Show
End If
End With
End Sub
En de opties verbonden aan de mssgebox werken ook niet maar dit mag dus ook een enkele handeling zijn.
Dubbele waarden = mssgbox met deze melding & retour naar werkblad om het zelf aan te passen (liefst met arcering van de bewuste cellen.
Laatst bewerkt: