• 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.

Textbox

  • Onderwerp starter Onderwerp starter Maik
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

Maik

Gebruiker
Lid geworden
20 dec 2005
Berichten
81
Hallo allemaal,

Weet iemand hoe ik het volgende kan oplossen:

Bij invoer van een bepaalde code (A+) in een cel in kolom G (bv G5)een textbox laten verschijnen waar een 7 cijferige code ingevoerd kan worden, deze 7 cijferige code dient vervolgens elders op dezelfde regel (DZ5) geplaatst te worden.
N.b. het is mogelijk de A+ code in te vullen in de cellen G5 tot en met G36.

Alvast bedankt.
 
Hoi ik heb er een macrocode voor je van gemaakt:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim code As String
On Error Resume Next
If Target.Column = 7 And Target.Row > 4 _
And Target.Row < 36 And Target.Value = "A+" Then
code = InputBox("Voer de 7 cijferige code in")
Target.Offset(0, 123).Value = code
End If
End Sub

Zet deze code in je Visual Basic Editor die je opent via Alt F11. Vervolgens kies je in je projectverkenner voor Blad1 (tenminste het blad van waar het hele gebeuren moet gebeuren). Daar zet je deze code neer en dan zal het werken. Kolom g is de 7de kolom en DZ 130. Vandaar de 7 en de 130-7 = 123
 
Hoi Snabbi,

Allereerst bedankt voor je snelle reactie, dit is al een grote stap in de goede richting, echter het invoerveld verschijnt na iedere invoer, ongeacht wat er ingevoerd wordt, de daarna ingevoerde 7 cijferige code zie ik niet meer terug in kolom DZ.
Heb je enig idee?

Maik
 
Dat vind ik vreemd.

Target.Value = "A+" zou moeten testen dat alleen de waarde A+ zou worden toegelaten.

Target.Offset(0, 123).Value = code zou wat je invoert in de inputbox 123 cellen naar rechts moeten plaatsen, vanaf g zou dat op DZ moeten uitkomen.

Voor de zekerheid heb ik even zelf een voorbeeldje gemaakt.
 

Bijlagen

Hoi Snabbi,

Je voorbeeld werkt als een trein, als ik zelf een nieuw bestand aanmaak heb ik ook geen probleem, alleen in het bestand waar het omgaat lukt het me maar niet.
Misschien wil jij even naar het bijgevoegde bestand kijken?

Maik
 

Bijlagen

Ok de reden dat er naar de verkeerde cel wordt weggeschreven is simpel te verklaren. Door het samenvoegen van de cellen wordt er nu te veel cellen naar rechts opgeschoven en dus staan de resultaten nu in EA in plaats van DZ. Ook het uitvoeren bij verschillende teksten is te verklaren. Ik had neergezet On Error Resume Next. Wat dit doet is dat wanneer de code een fout oplevert de volgende regel code wordt uitgevoerd. Ook weer omdat er cellen zijn samengevoegd kwamen er fouten.

Dit is de nieuwe code die wel gewoon werkt.

Private Sub Worksheet_Change(ByVal Target As Range)
On Error goto einde
Dim code As String
Dim getypt As String
'hier haal ik de waarde van de cel op. Dit test ik later of het A+ is
getypt = Range("G" & Target.Row).Value
If Target.Column = 7 And Target.Row > 4 _
And Target.Row < 36 And getypt = "A+" Then
code = InputBox("Voer de 7 cijferige code t.b.v. HUP in (volle breedte pagina's")
Range("DZ" & Target.Row).Value = code
End If
einde:
End Sub
 
Helemaal geweldig bedankt!

Ik heb op dit forum een bericht gelezen over het middels een code automatisch in hoofdletters veranderen. Kan ik deze code nu ongestraft toevoegen aan jouw code in de Visual Basic Editor?

Maik
 
Uiteraard. De macro's hebben geen invloed op elkaar tenzij ze elkaar natuurlijk gaan aanroepen. Maar die code staat er niet in.

Overigens voor het gebruik van hoofdletters kan je ook de standaard excel functie HOOFDLETTERS() gebruiken.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan