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

hulp bij excelbestand

Status
Niet open voor verdere reacties.
knoop1982;1923816 geachte lezers kunnen jullie mij verder helpen zei:
wat zijn CB en en CE? variabelen die niet gedeclareerd zijn. probeer dit een op te vangen en misschien lukt het dan wel.

steven
 
Code:
With Selection.Font
        While IsNumeric(C1) = False Or C1 = ""
            C1 = Application.InputBox("Geef Start week")
        Wend
        While IsNumeric(C2) = False Or C2 = ""
             C2 = Application.InputBox("Geef Eind week")
        Wend
        Rij = ActiveCell.Row
        Range("A" & Rij) = C1
        Range("B" & Rij) = C2
        
        With Range("C2:IV2")
            Set CB = .Find(C1, lookat:=xlWhole)
            Set CE = .Find(C2, lookat:=xlWhole)
        End With
        If CB <> "" And CE <> "" Then
            Range("C" & Rij & ":" & "IV" & Rij).Clear
            Range(Chr(64 + CB.Column) & Rij & ":" & Chr(64 + CE.Column) & Rij).Value = 1
            Range(Chr(64 + CB.Column) & Rij & ":" & Chr(64 + CE.Column) & Rij).Interior.ColorIndex = 6
        End If
    End With

hier heb ik dat uitgehaald iemand anders had mij dit voorgesteld en dit werkte, alleen ik moet dan 900 x begin week aangeven en 900 x eind week en dat wil ik dus automatiseren.... vandaar dat ik aan die code zo kom en niks declareer hoefde daar ook niet, want het werkte... :shocked:

alleen weet ik nie hoe naar die plek van weken weg te schrijven, anders laat ik die CB en CE wel weg!!!
 
hier heb ik dat uitgehaald iemand anders had mij dit voorgesteld en dit werkte
op een ander forum? zo ja, wees dan zo fair om de link door te geven. het is niet nodig dat we het warm water opnieuw uitvinden.

steven
 
uhhh nou ja ik heb die vraag zelf gesteld op DIT forum kijk maar eens.... staat op tablad 4 geloof ik....

Code:
 05-04-2007, 12:17    #7    
Roncancio 
Senior Member
 
 
 

Geregistreerd op: May 2005 Hallo,

De 1'en zoekt hij bij mij wel goed nu.
Ik neem aan bij jou ook.


Code:
Sub Jaap()
'
' Jaap Macro
' De macro is opgenomen op 4-4-2007 door Jeroen Strik.
'
' Sneltoets: CTRL+SHIFT+J
'
    With Selection.Font
        While IsNumeric(C1) = False Or C1 = ""
            C1 = Application.InputBox("Geef Start week")
        Wend
        While IsNumeric(C2) = False Or C2 = ""
             C2 = Application.InputBox("Geef Eind week")
        Wend
        Rij = ActiveCell.Row
        Range("A" & Rij) = C1
        Range("B" & Rij) = C2
        
        With Range("C2:IV2")
            Set CB = .Find(C1, lookat:=xlWhole)
            Set CE = .Find(C2, lookat:=xlWhole)
        End With
        If CB <> "" And CE <> "" Then
            Range("C" & Rij & ":" & "IV" & Rij).Clear
            Range(Chr(64 + CB.Column) & Rij & ":" & Chr(64 + CE.Column) & Rij).Value = 1
            Range(Chr(64 + CB.Column) & Rij & ":" & Chr(64 + CE.Column) & Rij).Interior.ColorIndex = 6
        End If
    End With
End SubMet vriendelijke groet,


Roncancio

en gelukkig heb ik warm water niet zelf uitgevonden maar vraag ik gewoon hulp om die CB eb CE goed geladen te krijgen dat krijg ik niet voor elkaar, omdat ik niet precies weet wat er bij de vorige code gebeurde

het werkte dus nam het gewoon over.... dus de makkelijkste weg kiezen zeg maar...
 
Laatst bewerkt:
Heb je al met F8 stap voor stap door de code gegaan? En gecheckt of alles klopt en tot waar het klopt? Dat is echt de enige manier om het te controleren. Zet MsgBoxes en zie of die uitgevoerd worden. Laat bepaalde dingen wegschrijven in cellen en zie of dat gebeurt, enz.
 
je hebt helemaal gelijk wim

en dat doe ik elke keer om er achter te komen wat de functies doen...

en wat er fout gaat is:

Code:
Set CB = .Find(C1, lookat:=xlWhole)
            Set CE = .Find(C2, lookat:=xlWhole)

hier wordt CB nothing.... en wat dat inhoud!!!!???!!!
en omdat CB nothing is stopt het programma bij:
Code:
Range(Chr(64 + CB.Column) & Rij & ":" & Chr(64 + CE.Column) & Rij).Value = 1
dat komt omdat hij niks kan vinden... dus in het CB laden zit een fout en ik weet niet hoe het op te lossen....
 
Dan ga je verder. In C2:IV2, staat daar wel degelijk het ingevoerde weeknummer?
 
dank je wim heb het gevonden....

je had inderdaad gelijk hij las uit de verkeerde rij...

Code:
Sub JaapvdSar()
'
' JaapvdSar Macro
' De macro is opgenomen op 18-4-2007 door Jeroen Strik.
'
' Sneltoets: CTRL+SHIFT+J
'
Dim rij As Long
Dim C1 As Integer
Dim C2 As Integer
rij = 2
Set myrange = Range("C2", Range("C" & Rows.Count).End(xlUp))
    For Each c In myrange
        C1 = Range("C" & rij)
        C2 = Range("D" & rij)
        With Range("E1:IV1")
            Set CB = .Find(C1)
            Set CE = .Find(C2)
        End With
        Range("E" & rij & ":" & "IV" & rij).Clear
        Range(Chr(64 + CB.Column) & rij & ":" & Chr(64 + CE.Column) & rij).Value = 1
        Range(Chr(64 + CB.Column) & rij & ":" & Chr(64 + CE.Column) & rij).Interior.ColorIndex = 6
        rij = rij + 1
    Next c
End Sub

ik heb alleen nog een klein probleempje....
hoe doe ik de overgang van jaren....


ik lees nu bijv. week 40 uit en begin met 1-en pas schrijven bij week 12 van het nieuwe jaar... hoe kan ik dat het beste oplossen in deze zeer kleine code...??
gewoon met een if functie de waarde C1 lezen en dan kijken wat er in E1 staat en vergelijken als die geen 12 is bijv. dan niks doen en pas vanaf 12 1-en neer zetten, of kan het ook op een andere manier???

meneer van dale w8 op antwoord :)
 

Bijlagen

  • voorbeeld1.zip
    20,2 KB · Weergaven: 6
Hey lui,

Na een tijd even niks aan de code gedaan te hebben, ben ik vandaag verder gegaan en werkt het macrootje bijna perfect.

Maar ik heb een probleem. Steeds als ik de macro aanspreekt, stopt hij bij regel 99 in de excelsheet. Als ik die regel weg haalt en dan alles 1 regel op schuif stopt hij bij regel 266.

In mijn ogen gezien kan hij hoger als 34 a 35 niet aan en stopt hij ermee, want als je week 52 hebt doet hij ook maar de helft....!!! Probeer de code uit en dan zult u het zien...

Ik hoop dat jullie snel een oplossing voor dit probleem kunnen verzinnen dan kan ik weer verder met het afmaken van mijn project.

Met vriendelijke groet,
Jeroen

Code:
Sub JaapvdSar()
'
' JaapvdSar Macro
' De macro is opgenomen op 18-4-2007 door Jeroen Strik.
'
' Sneltoets: CTRL+SHIFT+J
'
Dim rij As Long
Dim rijt As Long
Dim rijtj As Long
Dim C1 As Integer
Dim C2 As Integer
Dim C3 As Integer
rij = 2
rijt = 1
Set myrange = Range("C3", Range("C" & Rows.Count).End(xlUp))
    For Each C In myrange
        rijtj = 2
        C1 = Range("C" & rij)
        C2 = Range("D" & rij)
        E1 = Range("E" & rijt)
        With Range("E1:IV1")
            Set CA = .Find(C1)
            Set CB = .Find(C2)
            Set CE = .Find(E1)
        End With
        Range("E" & rij & ":" & "IV" & rij).Clear
        Set myranges = Range("E1:AT1")
        For Each i In myranges
            If CE >= i Then
                Range(Chr(64 + CE.Column) & rij & ":" & Chr(64 + CB.Column) & rij).Value = 1
                Range(Chr(64 + CE.Column) & rij & ":" & Chr(64 + CB.Column) & rij).Interior.ColorIndex = 6
            End If
            rijtj = rijtj + 1
        Next i
        rij = rij + 1
    Next C
End Sub

P.S. Ik heb nu een vaste E1 gekozen voor week 12 dus, omdat de getallen die tot aan regel 229 toch kleiner zijn dan 12 dus kan ik makkelijker die plek vinden om 12 te vullen enzo. Ik moet alleen nog effe erin bouwen dat als hij groter wordt dan 12 dat hij verder gaat met de ingevoerde waardes dus naar 13 14 enzo springt...
 

Bijlagen

  • voorbeeld1.zip
    25,7 KB · Weergaven: 6
Hey lui,

Als ik deze verbeterde code uitvoer op mijn excelsheet heb ik toch nog een aantal dingen niet voor elkaar, misschien weten jullie er meer van? Vooral het probleem met de Range!!! Als ik van week 12 t/m week 52 wilt selecteren dan selecteerd hij maar tot week 20 en gaat hij weer verder, het probleem doet zich voort als het ingelezen getal groter wordt dan 35!!!!! Hebben jullie daar misschien een oplossing voor?

Ik hoop snel wat te horen van iemand!

Mvg,
Jeroen

Code:
Sub JaapvdSar()
'
' JaapvdSar Macro
' De macro is opgenomen op 18-4-2007 door Jeroen Strik.
'
' Sneltoets: CTRL+SHIFT+J
'
Dim rij As Long
Dim rijt As Long
Dim rijtj As Long
Dim A As Integer
Dim B As Integer
rij = 2
rijt = 1
Set myrange = Range("A2", Range("C" & Rows.Count).End(xlUp))
    For Each C In myrange
        rijtj = 1
        A = 0
        B = 0
        C = 0
        A = Right(Range("A" & rij), 2)
        B = Right(Range("B" & rij), 2)
        C = Range("C" & rijtj)
        If A > B Then
            With Range("C1:AR1")
                Set CB = .Find(Right(Range("B" & rij), 2))
                Set CC = .Find(C)
                Range("C" & rij & ":" & "AR" & rij).Clear
                Set myranges = Range("C1:AR1")
                For Each i In myranges
                    If CC >= i Then
                        Range(Chr(64 + CC.Column) & rij & ":" & Chr(64 + CB.Column) & rij).Value = 1
                        Range(Chr(64 + CC.Column) & rij & ":" & Chr(64 + CB.Column) & rij).Interior.ColorIndex = 6
                    End If
                    rijtj = rijtj + 1
                Next i
            End With
        End If
        If A < B Then
            With Range("C1:AR1")
                A = Right(Range("A" & rij), 2)
                If A > 12 Then
                    Set CA = .Find(A)
                    Set CB = .Find(B)
                    Range("E" & rij & ":" & "AR" & rij).Clear
                    Set myranges = Range("C1:AR1")
                    For Each i In myranges
                        If CA >= i Then
                            Range(Chr(64 + CA.Column) & rij & ":" & Chr(64 + CB.Column) & rij).Value = 1
                            Range(Chr(64 + CA.Column) & rij & ":" & Chr(64 + CB.Column) & rij).Interior.ColorIndex = 6
                        End If
                        rijtj = rijtj + 1
                    Next i
                End If
                If A <= 12 Then
                    Set CC = .Find(C)
                    Set CB = .Find(B)
                    Range("E" & rij & ":" & "AT" & rij).Clear
                    Set myranges = Range("C1:AR1")
                    For Each i In myranges
                        If CC >= i Then
                            Range(Chr(64 + CC.Column) & rij & ":" & Chr(64 + CB.Column) & rij).Value = 1
                            Range(Chr(64 + CC.Column) & rij & ":" & Chr(64 + CB.Column) & rij).Interior.ColorIndex = 6
                        End If
                        rijtj = rijtj + 1
                    Next i
                End If
            End With
        End If
        If A = B Then
            With Range("C1:AR1")
                Set CA = .Find(A)
                Set CB = .Find(B)
                Range("E" & rij & ":" & "AR" & rij).Clear
                Set myranges = Range("C1:AR1")
                For Each i In myranges
                    If CA >= i Then
                        Range(Chr(64 + CA.Column) & rij & ":" & Chr(64 + CB.Column) & rij).Value = 1
                        Range(Chr(64 + CA.Column) & rij & ":" & Chr(64 + CB.Column) & rij).Interior.ColorIndex = 6
                    End If
                    rijtj = rijtj + 1
                Next i
            End With
        End If
        rij = rij + 1
    Next C
End Sub
 

Bijlagen

  • voorbeeld1.zip
    24 KB · Weergaven: 5
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan