• 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 klopt niet

Status
Niet open voor verdere reacties.

Jack Nouws

Terugkerende gebruiker
Lid geworden
16 apr 2008
Berichten
1.396
Hallo

Ik zit de hele avond al met deze code te worstelen. Hij werkt wel maar ik ben er niet tevreden over. Iets in mij zegt dat er iets niet klopt in deze code.:( Heeft er iemand een alternatief voor deze code?
Code:
Sub opvullen()
  For i = 6 To 143
    Set c = [Kas!B6:AB48].Find([i])
      If c.Value = i Then
        With [Blad2!F6]
          .Copy c
          c.Value = i
        End With
      End If
  Next
End Sub
 
- Wat is de bedoeling van het script?
- Hoe staan de zoekinstellingen (LookIn, LookAt) at run-time?
- Vanwaar de vierkante haken rondom i?
- Wat staat er in Blad2!F6? Bevat deze cel speciale opmaak? Ik begrijp het anders niet: je zoekt een cel met i erin, heb je die gevonden plak je een andere cel er over heen, om daarna terug i erin te zetten? Logisch vind ik dit allerminst.
- ...

Wigi
 
Laatst bewerkt:
- Wat is de bedoeling van het script?
- Hoe staan de zoekinstellingen (LookIn, LookAt) at run-time?
- Vanwaar de vierkante haken rondom i?
- Wat staat er in Blad2!F6? Bevat deze cel speciale opmaak? Ik begrijp het anders niet: je zoekt een cel met i erin, heb je die gevonden plak je een andere cel er over heen, om daarna terug i erin te zetten? Logisch vind ik dit allerminst.
- ...

Wigi

Hallo Wigi

Ik wil een speciale opmaak kopieren (Blad2!F6). Anders krijg ik te maken met "Selection.Interior.Gradient.RectangleLeft = 0.5" ...etc.
Die vierkante haken heb ik over het hoofd gezien, die horen daar niet.
En hoe die zoekinstellingen moeten staan weet ik niet precies, maar in ieder geval moet er gezocht worden naar getal 'i' in het bereik [Kas!B6:AB48].
Dit alles heeft weer betrekking op de roltafels die bij mij op het bedrijf staan.
Elke tafel (=elke cel) bevat 1224 planten die ik dmv een voorgeselecteerde kleur wil toewijzen. Ik wil dit met een kleur doen omdat de ruimte "in de cellen te klein is" voor een plantnaam of plantcode. Hiermee bedoel ik de ruimte voor een totaaloverzicht [Kas!B6:AB48] voor op een A4 afdruk.

Met vr gr
Jack
 
Ik wil een speciale opmaak kopieren (Blad2!F6)

Zoals je zegt, gebruik dan de ingebouwde functionaliteit van Plakken Speciaal > Opmaak. Dan ben je af van het (onnodig) opnieuw zetten van i na het plakken.

En hoe die zoekinstellingen moeten staan weet ik niet precies, maar in ieder geval moet er gezocht worden naar getal 'i' in het bereik [Kas!B6:AB48].

Als je in de helpfiles kijkt, zie je dat Lookin handelt over het zoeken in formules of waarden. En Lookat gaat over zoeken in hele cellen of delen ervan. Zoek je bvb. op een deel, dan zal i = 6 ook gevonden worden in 16... Specifieer die zoekinstellingen tijdens de zoekopdracht, zoniet neemt Excel de "huidige" instellingen over en zal je aan je lot overgeloten worden aangezien je zelf die instellingen niet weet.

Elke tafel (=elke cel) bevat 1224 planten die ik dmv een voorgeselecteerde kleur wil toewijzen.

Het kan blijkbaar moeilijk anders, maar weet dat werken met kleuren tof is, alleen draait het analyses in de soep... ;)

Just my two cents.

Wigi
 
Het kan blijkbaar moeilijk anders, maar weet dat werken met kleuren tof is, alleen draait het analyses in de soep... ;)
Hallo Wigi,

Wat je hier zegt ben ik al diversen malen op het forum tegen gekomen en ik probeer het zoveel mogelijk te beperken ;)

Hmmm, wat mijn code betreft ben ik tot hier gekomen, en mijn vraag is, is dit ongeveer wat jij bedoelde?
Code:
Sub opvullen()
  For i = 6 To 143
    Set c = [Kas!B6:AB48].Find(What:=i, LookIn:=xlValues, lookat:=xlWhole)
      If c.Value = i Then
        [Blad2!F6].Copy
        c.PasteSpecial xlFormats
      End If
  Next
End Sub

Met vr gr
Jack
 
Laatst bewerkt:
Waarom test je nog op "If c.Value = i Then"? Daarop zoek je toch :o
 
Code:
Sub opvullen()
  For i = 6 To 143
    [Blad2!F6].Copy
    [Kas!B6:AB48].Find(What:=i, LookIn:=xlValues, lookat:=xlWhole).PasteSpecial xlFormats
  Next
End Sub
 
Dank je Wigi,

Rest mij nog 1 opmerking,
Moet er bij de .Find methode een extra , geplaatst worden?
Code:
.Find(What:=i, LookIn:=xlValues, lookat:=xlWhole)
Code:
.Find(What:=i, [B][COLOR="red"],[/COLOR][/B] LookIn:=xlValues, lookat:=xlWhole)
Met vr gr
Jack
 
Dit is enkel nodig als je de code als volgt gebruikt, zonder de volledige beschrijving v/d gebruikte argumenten
Code:
.Find(i, , xlValues, xlWhole)
 
Bedankt Heren,

De code is als volgt geworden,
Code:
Sub opvullen()
  Application.ScreenUpdating = False
    
    For i = 6 To 143
    [Blad2!F7].Copy
      With [Kas!B6:AB48].Find(i, , xlValues, xlWhole)
        .PasteSpecial xlFormats
        .ClearComments
        .AddComment [Blad2!G7].Value
        .Comment.Shape.TextFrame.AutoSize = True
      End With
    Next
  
  Application.CutCopyMode = False
  Application.ScreenUpdating = True
End Sub
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan