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

code vertalen

Status
Niet open voor verdere reacties.

Jack Nouws

Terugkerende gebruiker
Lid geworden
16 apr 2008
Berichten
1.396
Hallo

kan iemand mij vertellen wat deze code precies doet

Met vr gr
Jack.
Code:
Set MyRange = Worksheets("Fustoverzicht")
For Each d In Sheets("Fustbon").[C24:C54]
    If d <> "" Then
        With Sheets("Fustoverzicht").[J2:S2]
            Set c = .Find(d.Value, LookIn:=xlValues, lookat:=xlWhole)
             
                         c.Offset(2, 0).Value = Sheets("Fustbon").Range("N24").Value
 
Laatst bewerkt:
Halve code hier neerplanten helpt helpers ook niet verder om jouw probleem op te lossen.
 
Halve code hier neerplanten helpt helpers ook niet verder om jouw probleem op te lossen.

Code:
Private Sub CommandButton2_Click()
Dim MyRange             As Variant
Dim c                   As Range
Dim d                   As Range

Set MyRange = Worksheets("Fustoverzicht")
For Each d In Sheets("Fustbon").[C24:C54]
    If d <> "" Then
        With Sheets("Fustoverzicht").[J2:S2]
            Set c = .Find(d.Value, LookIn:=xlValues)
             
                         c.Offset(2, 0).Value = Sheets("Fustbon").Range("N24").Value
                    MyRange.Range("B4").Value = Sheets("Fustbon").Range("N14").Value
                    MyRange.Range("C4").Value = Sheets("Fustbon").Range("N13").Value
                    MyRange.Range("D4").Value = Sheets("Fustbon").Range("D13").Value
                    MyRange.Range("E4").Value = Sheets("Fustbon").Range("D14").Value
                    MyRange.Range("F4").Value = Sheets("Fustbon").Range("D15").Value
                    MyRange.Range("G4").Value = Sheets("Fustbon").Range("G15").Value
                    MyRange.Range("H4").Value = Sheets("Fustbon").Range("D16").Value
                    MyRange.Range("I4").Value = Sheets("Fustbon").Range("E16").Value
            End With
        End If
    Next d
End Sub
Dit is een code waar ik momenteel zelf aan werk maar ik krijg net niet het gewenste resultaat. Vandaar mijn vraag.

met vr gr
Jack
 
Laatst bewerkt:
En waarvoor staat cl? Toevallig is die gedurende de hele code 0?
 
Ik weet het antwoord niet maar ik zou de vraag anders stellen.

Ik wil 'dit en dit' voor elkaar krijgen en heb deze code al maar hij doet niet wat ik wil
Waar gaat het fout.
Dit in plaats van te vragen wat een 'foute' code doet.
Want een 'foute' code doet niets (althans niet wat jij wilt)
 
Ik wil 'dit en dit' voor elkaar krijgen en heb deze code al maar hij doet niet wat ik

En waarvoor staat cl? Toevallig is die gedurende de hele code 0?

Ik heb die al veranderd in "d" (zie vorige Quote) en dit is een bereik met namen in tabblad fustbon en moet de naam in het bereik van tabblad fustoverzicht zien te vinden. Als dat waar is moet de waarde van de naam, van tabblad fustbon naar tabblad fustoverzicht gekopieerd worden.

Met vr gr
jack
 
Laatst bewerkt:
Excuseer mij, maar ik zie in beide codes cl.Value staan.
 
Waarom is MyRange gedeclareerd als een Variant? Even verderop staat dat het naar een Worksheet verwijst.
 
Neen, je declareert een variabele als Worksheet. En MyRange is in dit verband wel vrij ongelukkig gekozen want het is geen Range maar een Worksheet.
 
Neen, je declareert een variabele als Worksheet. En MyRange is in dit verband wel vrij ongelukkig gekozen want het is geen Range maar een Worksheet.
Dus:
Code:
Dim Ws       As Variant

Met vr gr
Jack
 
Misschien dat ik het morgen wel anders zie, ga eerst maffen.

met vr gr
Jack
 
Goedemorgen Jack Nouws, het is weer ochtend... Dus aan de slag!:D

Heb je wel 'ns gebruik gemaakt van de F8 toets in je VBE? Zet je cursor ergens in het codeblokje. Druk vervolgens op F8 en je ziet de 1e regel geel kleuren. Door iedere keer op F8 te drukken ga je steeds een regel verder door je code. Zo kan je regel voor regel zien wat je code doet en welke waarde een variabele aanneemt. ZO spoor je fouten op of test je de werking!

Groet, Leo
 
Goedemorgen Jack Nouws, het is weer ochtend... Dus aan de slag!:D

Heb je wel 'ns gebruik gemaakt van de F8 toets in je VBE? Zet je cursor ergens in het codeblokje. Druk vervolgens op F8 en je ziet de 1e regel geel kleuren. Door iedere keer op F8 te drukken ga je steeds een regel verder door je code. Zo kan je regel voor regel zien wat je code doet en welke waarde een variabele aanneemt. ZO spoor je fouten op of test je de werking!

Groet, Leo

Volgens mij heeft dit stukje code geen nut en kan dus weggelaten worden.

met vr gr
jack
Code:
Set MyRange = Worksheets("Fustoverzicht")
 
Klopt.

Ofwel kan je ook zeggen:

Code:
Dim ws As Worksheet
Set ws = Sheets("Fustoverzicht")
With ws.[J2:S2]
'...
End With
 
Hallo

Ik heb een blad met de naam "Fustbon".
Ik heb een bereik met namen ik kolom "C" staan. (C24:C54)
Bij deze namen horen de waardes in kolom"N". (N24:N54)

Nu wil ik met de namen in kolom "C" gaan zoeken in Blad "Fustoverzicht" naar de zelfde naam.
Deze namen staan in blad "Fustoverzicht" op een rij. (J2:S2)
Als deze naam is gevonden wil ik een lege rij zoeken. (Range "B")
dan wil ik dat de waarde uit blad "Fustbon" uit kolom "N" in blad Fustoverzicht komt.

Is mijn uitgangspositie dan goed met dit stukje code?
Code:
Dim ws As Worksheet
Set ws = Sheets("Fustoverzicht")
With ws.[J2:S2]
'...
End With
 
Dat is idd een mogelijke uitgangspositie. Integreer dit in de code van post # 3.

Daarna gebruik je F8 om door de macro te stappen en wijzigingen aan te brengen zodat die doet wat je wil. Zie post van Finch.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan