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

Vlookup in combinatie met Copy en Paste niet mogelijk?

Status
Niet open voor verdere reacties.

AEHofman

Gebruiker
Lid geworden
20 mei 2013
Berichten
25
Hallo,

Ik probeer met behulp van een Vlookup functie in VBA, een cel te vinden.
En deze gevonden cel dan te vullen met de waarde uit een andere cel.
Ik ben al een eind op weg maar hij doet precies het tegenovergestelde van wat ik wil.
En ik krijg het niet werkend zoals ik het zou willen hebben.

Hij kopieert nu de waarde van de met vlookup gevonden cel, naar de cel die hij juist zou moeten kopiëren.


Private Sub CommandButton1_Click()
Dim Res As Variant
Dim Starttijd As Range
Set Starttijd = Sheets("Personeel").Range("E2")
On Error Resume Next
Err.Clear
Res = Application.WorksheetFunction.VLookup(Sheets("personeel").Range("A2"), Sheets("Export").Range("A1:G55"), 5, False)
MsgBox "Gevonden Waarde: " & Application.WorksheetFunction.VLookup(Sheets("personeel").Range("A2"), Sheets("Export").Range("A1:G55"), 5, False), vbOKOnly + vbInformation, "Info ?"
If Err.Number = 0 Then
Starttijd = Res
Else
MsgBox Err.Description, , "Error: " & Err.Number
End If
Unload Me
End Sub

Bij het stukje vba "Starttijd = Res" Doet hij precies wat er staat, hij maakt van de Starttijd de waarde van Res.
Je zou dus verwachten dat het omgekeerde "Res = Starttijd" (Wat ik nu juist wil, het goed moet komen, maar hij doet dan juist niets?

Wie heeft een oplossing voor dit probleem?
 

Bijlagen

  • Vopzoeken.xls
    68,5 KB · Weergaven: 35
Laatst bewerkt:
Waarom het formulier er tussen zit begrijp ik niet.

Om de waarden terug te schrijven uit het blad "personeel" kan je het volgende gebruiken.

Code:
Private Sub CommandButton1_Click()
    ar1 = Sheets("Personeel").Range("E2:G2")
    With Sheets("Export")
        .Cells(Application.Match(Sheets("personeel").Range("A2"), .Range("A1:A" & .UsedRange.Rows.Count), 0), 5).Resize(, 3) = ar1
    End With
    Unload Me
End Sub
 

Bijlagen

  • Vopzoeken.xls
    68,5 KB · Weergaven: 27
Kom nog niet helemaal uit met de code.

Allereerst, bedankt voor de reactie.

Om de eerste vraag te beantwoorden waarom het formulier er tussen zit.

Dit is een formulier waarin de gebruiker een tijd kan aanpassen in de te werken uren van een medewerker.
Er wordt een Starttijd opgevraagd een Eindtijd een een Pauzeduur.

Vervolgens kan men in het formulier op OK klikken of Cancel.
En dat is het laatste stukje van het formulier wat ik even had meegenomen in het voorbeeldbestandje.

Maar met de code die ik nodig had, en die jij had aangedragen loop ik vast omdat er voor sommige personeelsleden 2 regels voor 1 dag worden gebruikt.
En dan geeft de code de melding "Typen komen niet met elkaar overeen."

Ik heb ik het voorbeeld bestand zo goed mogelijk uiteengezet wat mijn bedoeling precies is.
Misschien kun je er nog eens naar kijken, en mogelijk een oplossing bedenken voor mijn probleem.

Alvast bedankt

Andrys
 

Bijlagen

  • Vopzoeken Reactie.xls
    84,5 KB · Weergaven: 30
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan