Melding

Status
Niet open voor verdere reacties.

jan excel

Gebruiker
Lid geworden
4 mrt 2007
Berichten
437
Beste Experts,

Ten eerste iedereen een gezond en gelukkig nieuwjaar.

In userform1 worden namen in gevoerd, echter bij invoering bij dezelfde naam dient een melding te komen dat deze naam al bestaat en dus niet ingevoerd kan worden.
Wie kan mij aan een script helpen om dit te realiseren.

test bestand toegevoegd.
Bekijk bijlage testhlpmij.xlsm


Alvast bedankt.
Jan Evers.
 
Hoi Edmoor,

Sorry voor de late reactie.
De naam toevoegen werkt nu goed, dank daarvoor.

Echter nu wil ik ook de mogelijkheid inbouwen dat er een naam verwijdert kan worden.
In ComboBox1 kan er een naam worden geselecteerd en daarna worden verwijderd zodra op de CmdButton2 wordt geklikt.
Het lijkt bijna te werken, zodra ik een naam verwijderd zie ik deze niet terug terug in de ComboBox1 echter op blad1 is de naam nog niet verwijderd.
Pas als ik userform1 afsluit via het afsluitkruisje wordt de naam verwijderd in het werkblad namen.
Wie weet hoe dit kan ?

In mijn project geeft deze VBA script (CmdButton2) ook wat andere problemen, dus als iemand een andere VBA script heeft met het zelfde resultaat is ook goed.

Zie bijlage als voorbeeld.

Bekijk bijlage testhlpmij (5).xlsm

Alvast bedankt.
Jan E
 
Beste Edmoor,

Bedankt voor je reactie en hulp.

Zoals ik het voorbeeld had geplaats werkt het perfect.
Echter in mijn project heb ik het werkblad namen verborgen, en hierin werkt jou script niet.
In het voorbeeld bestand heb ik nu het Werkblad namen ook verborgen en je zult zien als je dan probeert namen toe te voegen of te verwijderen
dat dit niet goed gaat.
Zou je het script kunnen aanpassen naar deze situatie. (zie bijlage)
ben je zeer dankbaar !


Bekijk bijlage testhlpmij (6) (2).xlsm

groet,
Jan Evers
 
Maak er dit van, en het werkt.

Code:
Dim LastRow As Long
Dim i As Integer
Dim sht As Worksheet
    Set sht = Sheets("Namen")
    sht.Unprotect Password:="Password"

    If Trim(Me.Txt_Naam.Value) = "" Then
        Me.Txt_Naam.SetFocus
        MsgBox "U heeft geen naam ingevuld "
        Exit Sub
    End If

    With sht
        LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
    End With

    For i = 2 To LastRow
        If Cells(i, 1) = Txt_Naam Then
            MsgBox "U heeft reeds aanwezige naam ingevuld "
            Exit Sub
        End If
    Next i

    sht.Cells(LastRow + 1, 1) = Txt_Naam
    Txt_Naam.Value = ""
    ComboBox1.List = sht.UsedRange.Value

    sht.Protect Password:="Password"
    Application.ScreenUpdating = True

Overigens had je dat zelf ook min of meer kunnen vinden, want er werd al met sheets("namen").etc gewerkt, en diezelfde techniek kun je ook gebruiken om een sheet te beveiligen :).
 
Ik zie nu dat ik een verkeerde versie van het document had geplaatst in #4. De juiste staat op mijn PC thuis, waar ik nu niet ben. Als je doet wat Octafish zegt moet het in orde zijn.
 
De aanpassing werkt alleen voor het toevoegen; voor het verwijderen wordt ook nog met ActiveSheet gewerkt zie ik, dus daar moet je dezelfde aanpassing ook nog maken.
 
Hoi Octafish en Edmoor,

Betreft toevoegen wordt naam wel toegevoegd echter nu geeft het geen melding als ik dezelfde naam wil invoeren.
Dezelfde naam wordt er nu dubbel ingezet.

Na het aanpassen van script voor CmdButton2 bij verwijderen van een naam loopt deze vast bij:

Application.Goto Blad1.Range(Blad1.UsedRange.Find(ComboBox1.Value, , xlValues, xlWhole).Address)

Weten jullie dit op te lossen, bvd dank ! Zie bijlage.

Bekijk bijlage testhlpmij (6) (3).xlsm


groet,
Jan E
 
Ik zal vanavond even het juiste document plaatsen.
 
Deze doet het bij mij prima. Test dus dit document en kopieer niet alleen maar 1 routine naar een ander werkblad want er zijn meerdere routines aangepast.

Bekijk bijlage testhlpmij (6).xlsm
 
Hoi Edmoor En OctaFish,


Bedankt voor jullie input, het probleem is nu opgelost.


M.v.g.
Jan E
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan