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

Fout in VB-macro

Status
Niet open voor verdere reacties.

abreeman

Gebruiker
Lid geworden
17 apr 2007
Berichten
57
Beste forummers,

Ik heb een spreadsheet waarin ik in een apart tabblad de totalen van weken of maanden wil laten zien door middel van een macro. De macro met de weken werkt goed. Ik kies op het tabblad totalen de week dmv een validatielijst en voer de macro uit. Hij komt dan met de totalen van die week.

Een overzicht van de maanden lukt me niet goed. Hij geeft aan dat er een fout in mijn formule zit. Met name het gele deel. In de andere macro heb ik daar Value staan.

Ik plak hem bijgaand bij:

' maanden Macro
'
Code:
Dim MyRow As Integer
MyRow = Range("D1").[B]Text[/B]
'
    Sheets("xx BV").Select

    Rows("89:89").Select
    Selection.Find(What:=MyRow, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
        :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
        False, SearchFormat:=False).Activate
    
    ActiveCell.Offset(2, 0).Range("A1:A68").Select
    Selection.Copy
    Sheets("totalen").Select
    Range("D3").Select
    ActiveSheet.Paste
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.Goto Reference:="R1C1"
    
    
    Application.CutCopyMode = False
'
    Sheets("xx BV").Select
 
Laatst bewerkt door een moderator:
Plaats eens een voorbeeldbestandje met de opzet die je nu gebruikt, want nu is het een beetje raden naar waar staat wat, hoe geef je de zoekmaand op, hoe is het in de zoekrij weergegeven, enz...
 
VB-code

Hoi,

Het duurde even, maar bijgaand het voorbeeld. Het lijkt me allemaal erg omslachtig gaan.
Ik denk dat het onderste gedeelte van het 1e tabblad ook op een apart tabblad moet zodat het allemaal iets beter beveiligd wordt.

Misschien heb je wel een ultieme tip voor een heel andere opzet. Het is nu zo dat 16 vestigingen deze spreadsheet dagelijks invullen en iedere week naar het hoofdkantoor mailen. Deze moet dan alles samenvoegen en weektotalen weer gebruiken in andere spreadsheets. Echter, vaak zitten er verschillen in, formules worden aangepast etc. etc.

Groetjes,
Arie
 

Bijlagen

abreeman,


Kijk eens of de macro zo wel werkt, zie de rode verandering.
Code:
Sub maanden()
'
' maanden Macro
'
Dim MyRow As Integer
MyRow[COLOR="#FF0000"]1[/COLOR] = Sheets("Totalen").Range("D1")
enz.
 
Laatst bewerkt:
Hoi,

Bedankt. Hij doet nu wel meer inderdaad, alleen komt er bij elke maand hetzelfde resultaat uit, namelijk de cijfers van week 10.
Ik heb geprobeerd in het stukje:

Code:
Selection.Find(What:=MyRow, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
        :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
        False, SearchFormat:=False).Activate

MyRow te veranderen in MyRow1, maar dat slikt hij niet.. Misschien mag ik de macro niet kopiëren van het gedeelte van de weeknummers?

Groetjes,
Arie
 
Laatst bewerkt door een moderator:
Als je dit gebruikt?
Code:
Sub Weken()
' test Macro
Dim Week As Integer
Week = Sheets("totalen").Range("C1")
'
    Sheets("ELITech Benelux BV").Select
    Rows("89:89").Select
    Selection.Find(What:=Week, ......
en dit
Code:
Sub maanden()
' maanden Macro
Dim Maand As Variant
Maand = Sheets("totalen").Range("D1")

    Sheets("ELITech Benelux BV").Select
    Rows("3:3").Select
    Selection.Find(What:=Maand,......
Voor de maand moest hij op regel 3 zoeken en deze zijn afgekort.
Dit heb ik aangepast, test de file.

Anders zal je op een expert moeten wachten.
 

Bijlagen

Laatst bewerkt:
Hoi mega-senior,

Bedankt tot zover. Het gaat de goede kant op..
Ik vroeg me af of het met een ALS DAN formule ook gaat. Als ik in het scrollvenster week 5 selecteer, dat hij dan in werkblad xx BV op rij 89horizontaal zoekt naar 5 en vervolgens het lijstje eronder kopieert. Dan staat er namelijk altijd de goede waarde als er een week of maand geselecteerd wordt. Nu staat er wel een waarde, maar moet er wel op gelet worden dat de macro uitgevoerd wordt.

Of is dat te ingewikkeld?
 
abreeman,

Zoveel weet ik er ook niet van, mijn naam zegt het al amateur.
 
Je zag er zou wijs en oud uit op het icoontje..

Ik heb nog wat zitten vogelen: =HORIZ.ZOEKEN(totalen!$C$1;'xx BV'!$F$88:$AJ$160;4;WAAR)
- Het werkblad is dus totalen, cel C1 heb ik een validatielijstje met week 1, week 2 etc. (die heb ik in het andere werkblad ook gemaakt in rij 88)
- toen in werkblad xx BV het bereik geselecteerd F88:AJ160
- die 4 slaat hierop dat ik deze formule in de 4e rij onder bijvoorbeeld week 4 op het werkblad xx BV heb staan. In de cel eronder staat daar bijvoorbeeld een 5 etc.

Erg handig..
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan