Dubbele celverwijzing

Status
Niet open voor verdere reacties.

MarkF

Gebruiker
Lid geworden
30 okt 2008
Berichten
49
Ik heb een macro gemaakt waarin wordt gevraagd een document nummer op te geven. Deze wordt na invullen (in een inputbox) in een cel geplaatst. Vervolgens wordt aan dit nummer een sheet gekoppeld en deze wordt gehyperlinkt. De lijst wordt steeds groter naarmate er meer nummers worden ingevuld.

Nu is mijn vraag hoe voorkom ik dat ik een waarde kan invullen die alreeds is gebruikt?

Ik ben al op weg met een if functie maar ik krijg het nog niet voor elkaar dat hij de hele kolom doorzoekt.

If Range("B1").Value = Range("A8").Value = True Then
Range("B1").Value = InputBox("Nummer bestaat al, geef ander nummer!", "nummer invoer")
[/I][/I][/I]

Wie kan mij helpen?
 
Zoiets

Code:
Sub f()

    Dim intNummer As Integer
    
    intNummer = InputBox("Nummer bestaat al, geef ander nummer!", "nummer invoer")
    
    If Application.WorksheetFunction.CountIf(Columns(1), intNummer) > 0 Then
    
        MsgBox "komt al voor", vbCritical
    
    End If

End Sub

Wigi
 
Je zou dit op een paar manieren kunnen oplossen.

Of je bouwt een forloop die gewoon alle cellen bijlangs loopt. Dit kost wel iets tijd maar valt op zich mee.
Of je zet een aantal.als formule op het werkblad. Die functie kijkt dan in bv A1 naar de waarde die gezocht wordt. En A1 vul je via een macro. En stal dat de functie in A2 staat lees je die vervolgens via een macro weer uit.
 
Of je zet een aantal.als formule op het werkblad. Die functie kijkt dan in bv A1 naar de waarde die gezocht wordt. En A1 vul je via een macro. En stal dat de functie in A2 staat lees je die vervolgens via een macro weer uit.

In VBA kan dat ook. Zie mijn codeblokje als voorbeeld.
 
Wanneer ik deze kolom toepas, geeft die voor elke ingevulde waarde aan dat het nummer al bestaat. Ook als ik een nummer invoer wat nog niet bestaat omdat deze nog niet in de kolom staat.

Ik heb het bestand toegevoegd.



Zoiets

Code:
Sub f()

    Dim intNummer As Integer
    
    intNummer = InputBox("Nummer bestaat al, geef ander nummer!", "nummer invoer")
    
    If Application.WorksheetFunction.CountIf(Columns(1), intNummer) > 0 Then
    
        MsgBox "komt al voor", vbCritical
    
    End If

End Sub

Wigi
 

Bijlagen

Dan kan ik enkel maar gokken dat je het nummer van de kolom niet aangepast hebt in de code.
 
Ik heb je bestand een beetje aangepast en nu wordt er in kolom A gekeken of het getal al bestaat.
Zo ja, dan moet er een nieuw getal ingevoerd worden, net zolang tot er een getal is ingevoerd dat nog niet bestaat.
Zo nee, dan wordt het ingevoerde getal onderaan de lijst ingevoegd.
 

Bijlagen

Hoe kan ik ervoor zorgen dat de waarde die bij de inputbox wordt ingevuld altijd in celnummer A1 ingevuld wordt? i.p.v. dat deze onderaan de kolom wordt ingevuld.
en als ik een waarde invul welke nog niet bestaat dan wordt deze wel geplaatst, maar als ik eerst een waarde invul die al bestaat en vervolgens een waarde invul die nog niet bestaat dan wordt deze nog niet bestaande waarde niet ingevuld in de kolom.

Ik werk namelijk met het principe dat ik eerst een regel invul (d.m.v. inputboxen) en vervolgens de ingevulde regel kopieer. Elke keer als ik dan een de inputboxen invul dan wordt de regel overschreven en weer gekopieerd en vervolgens in een regel ingevoegd


Ik heb je bestand een beetje aangepast en nu wordt er in kolom A gekeken of het getal al bestaat.
Zo ja, dan moet er een nieuw getal ingevoerd worden, net zolang tot er een getal is ingevoerd dat nog niet bestaat.
Zo nee, dan wordt het ingevoerde getal onderaan de lijst ingevoegd.
 
Laatst bewerkt:
Met de macro in bijgevoegde excel wordt iedere ingevoerde waarde die nog niet bestaat in de lijst, bovenaan de lijst toegevoegd. En ook de bug dat een niet bestaand getal niet niet in de lijst gezet wordt als je eerst een reeds bestaand getal hebt ingevoerd, is opgelost.
Je moet er alleen wel voor zorgen dat de lijst met waardes in cel A1 begint, maar je kunt dit uiteraard zelf gewoon aanpassen in de code als je wilt.

Succes ermee!
 

Bijlagen

Laatst bewerkt:
Bedankt

De macro heb ik ingevoegd in mijn bestaande lijst en alles functioneert nu precies zoals ik het wil hebben! Heel erg bedankt voor jullie tijd!!! :thumb:

met vriendelijke groet,
Mark F
 
Graag gedaan!

Wil je de vraag nog even op opgelost zetten? Knopje zit rechts onderaan.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan