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

opdrachten automatisch per maand wegzetten

Status
Niet open voor verdere reacties.

perry99

Gebruiker
Lid geworden
3 feb 2007
Berichten
106
Hallo,

Zit met het volgende probeleem waar ik niet uitkom wie kan mij helpen??????
Met het volgende probleem zit ik:
werkblad 1 - Hierop worden alle offertes geregisteerd, heb ook een kolom waar je uit 1, 2
en 3 kan kiezen. 1 = offertestadium 2 = lopend 3= opdracht
Een ander kolom heb ik dmv VBA een vast gezette datum staan als je code 3 = opdracht activeert.

Tot hiertoe werkt alles nog maar dan:

Werkblad 2 - Opdrachtregistratie per maand.
Hoe krijg ik een offerte die opdracht wordt op 02-02-2007 automatich onder
de maand februari

Ben al weken bezig en zie door de bomen het bos niet.
Hoop dat iemand mij kan helpen.
Alvast bedankt

Perry:( :( :( :(
 
Laatst bewerkt:
Dat ligt eraan hoe je die opdracht daar plaatst.
Maar waarom niet onderaan de lijst en dan sorteren?
 
Hallo palmpje,

Ik begrijp wel wat je bedoelt, echter er volgen ook nog diverse grafieken achter aan en die werken indien ik de opdrachten per maand wegzet.

Het probleem zou opgelost zijn als ik bv de kolom waar het getal 1, 2 of 3 staan alle offerte's met code 3 en met opdrachtmaand januari automatisch naar het werkblad opdrachten gaat en deze onder de maand januari zou zetten.
Dit krijg ik niet voor elkaar.

Ben wel blij met je snelle reactie en voorstel.
Maar misschien heb je nog een andere, wil anders wel een gedeelte van het bestand posten.

Groetjes,

Perry
 
Post eens een voorbeeld, met bogus data (je prive gegevens vervangen door onzin)?

Groet,
Ferenc
 
Hallo demeter,

Bijgaand het bestand, hoop dat je het voor elkaar kan krijgen.

Heb een aantal werkbladen en grafieken weggehaald ivm grote zip-bestand.

Alvast bedankt voor jou medewerking.

Groetjes,

Perry :thumb: :thumb: :thumb: :thumb:
 

Bijlagen

Laatst bewerkt:
Waarom niet iedere maand een tabblad van maken?
Bekijk dit voorbeeldje eens!

Groet,
Ferenc
 

Bijlagen

Ferenc,

Pfffffff, je hebt er wel werk van gemaakt zeg, ben ik je erg dankbaar voor.

Bij het openen van het bestand krijg ik een kringverwijzing. Reeds opgelost.

Kan jij naar de opdrachtdatum verwijzen die in kolom W staan. Reeds opgelost.

Als ik het bestand open, zijn alle opdrachtdata's (kolom W) veranderd naar de datum van vandaag, staat er iets fout in module "vastmoment"

Iedere keer als ik op "omzetten" druk, zet die alle opdrachten opnieuw erbij, houdt dat in dat elke keer als ik dat doe eerst de opdrachten in de maanden moet verwijderen c.q. wissen?
Of kan je ook een macro maken dat de inhoud van de maanden automatisch gewist worden????

Vraag wel veel van je, nogmaals mijn dank voor je medewerking.

Groetjes,

Perry:thumb: :thumb: :thumb: :thumb: :thumb:
 
Laatst bewerkt:
Perry,

Wat bedoel je precies met:
Kan jij naar de opdrachtdatum verwijzen die in kolom W staan
?

Je hebt deze dan zelf wel opgelost maar is dan handiger dat je dan je nieuwe file hier weer post, scheelt ons allen tijd!!!

Wat houdt de datum:
OPDRACHTDATUM VAST
precies in? Wanneer moet deze worden ingevuld?


Groet,
Ferenc
 
Kijk hier eens naar.
Heb de code iets aangepast hij vuld nu ook cel A6, ook al is A5 leeg.
Code:
Sub Overzetten_data()
Dim c As Range
Dim legeregel As Long

'laad de module werkbladen_leegmaken
Werkbladen_legen
   
For Each c In Sheets("OFFERTE REGISTRATIE").Range("A6:A" & Range("A65536").End(xlUp).Row)
    If c.Offset(0, 17) = 3 Then
        maand = MonthName(Month(Sheets("OFFERTE REGISTRATIE").Range("C" & c.Row))) & "2007"
        
        legeregel = Sheets(maand).Range("A5:A200").Find(What:="", LookIn:=xlValues).Row

        With Sheets(maand)
            .Range("A" & legeregel) = Sheets("OFFERTE REGISTRATIE").Range("A" & c.Row)
            .Range("B" & legeregel) = Sheets("OFFERTE REGISTRATIE").Range("B" & c.Row)
            .Range("C" & legeregel) = Sheets("OFFERTE REGISTRATIE").Range("C" & c.Row)
            .Range("D" & legeregel) = Sheets("OFFERTE REGISTRATIE").Range("D" & c.Row)
            .Range("E" & legeregel) = Sheets("OFFERTE REGISTRATIE").Range("E" & c.Row)
            
            .Range("G" & legeregel) = Sheets("OFFERTE REGISTRATIE").Range("G" & c.Row)
            .Range("H" & legeregel) = Sheets("OFFERTE REGISTRATIE").Range("H" & c.Row)
            
            .Range("J" & legeregel) = Sheets("OFFERTE REGISTRATIE").Range("J" & c.Row)
            
            .Range("L" & legeregel) = "-"
            .Range("M" & legeregel) = Sheets("OFFERTE REGISTRATIE").Range("S" & c.Row)
            .Range("N" & legeregel) = Sheets("OFFERTE REGISTRATIE").Range("Q" & c.Row)
        End With
    End If
Next
        
End Sub

Tevens een code er bij gemaakt om je bladen te legen, nadeel van deze opzet is dat je tabbladen nog wel de engelstalig maandnamen moeten hebben. :(
Code:
Sub Werkbladen_legen()
Dim x As Integer
Dim y As Integer
Dim legeregelII As Long

y = 1

For x = 1 To ActiveWorkbook.Sheets.Count
    If Sheets(x).Name = MonthName(y) & "2007" Then
        legeregelII = Sheets(x).Range("A6:A200").Find(What:="", LookIn:=xlValues).Row
        Sheets(x).Range("A6:N" & legeregelII).ClearContents
        y = y + 1
    End If
Next

End Sub

Blijft staan de vragen in de post hiervoor!!!!!


Groet,
Ferenc
 

Bijlagen

Hallo Ferenc,

Je bent er maar druk mee, vindt het fantastisch wat je voor mij doet.

Met kolom W bedoel ik dat kolom W in werkblad offerte registratie de opdrachtdatum automatisch wordt ingevuld met functie vastmoment.
Kolom W is dan ook voor de opdrachtregistratie januari 2007 t/m december 2007.
V.B. als een offerte met offertedatum 15-01-2007 vandaag opdracht wordt, dan krijg je de opdrachtdatum van vandaag 05-02-2007 in kolom W.

Hoop dat ik je vragen zodanig heb kunnen beantwoorden, dat jij begrijpt wat ik bedoel.

Krijg foutmelding in onderstaande regel van jou testbestand2, weet niet wat er fout gaat???

legeregel = Sheets(maand).Range("A5:A200").Find(What:="", LookIn:=xlValues).Row

Groetjes,

Perry :thumb: :thumb: :thumb:
 

Bijlagen

Je fout melding geeft aan dat je tabnaam niet over een komt met de naam welke we via de datum genereren. Het verschil zit hem er in dat de tabnamen met nederlandse spelling zijn gemaakt en vba werkt met de engelse benamingen van de maanden.

Bekijk mijn vorige versie maar eens, hier hem ik de tabbladen moeten hernoemen ivb legen tabbladen.

Edit, zie nu dat je mijn bestandje bedoelde.
Heb hem hier nogmaals getest maar krijg geen fout melding. :)
Weet je zeker dat het versie 2 was die je probeerde?

Voor je vraag over de datum kijk hier eens:
http://www.helpmij.nl/forum/showthread.php?t=280741&highlight=datum

Edit2,
Werkt deze naar behoren?:
Code:
Function VASTMOMENT(CONTROLEER)

    If CONTROLEER = 3 [COLOR="Red"]And VASTMOMENT = ""[/COLOR] 
         Then VASTMOMENT = Date
    else
          VASTMOMENT = ""
    end if
 
End Function


Groet,
Ferenc
 
Laatst bewerkt:
Ferenc,

Als ik jou bestand open testbestand2.zip krijg ik de navolgende foutmelding:
Code:
Fout 9 tijdens uitvoering.
Het subscript valt buiten het bereik.
Bovenstaande heeft betrekking op regel:

Code:
 legeregel = Sheets(maand).Range("A5:A200").Find(What:="", LookIn:=xlValues).Row

Bij onderstaande function krijg de foutmelding:
Compileerfout
Verwacht: Then of GoTo

Code:
Edit2,
Werkt deze naar behoren?:

Code:
Function VASTMOMENT(CONTROLEER)

    If CONTROLEER = 3 And VASTMOMENT = "" 
         Then VASTMOMENT = Date
    else
          VASTMOMENT = ""
    end if
 
End Function

Hoop dat je uit bovenstaande kan komen.

Groetjes,

Perry :thumb: :thumb: :thumb:
 
Ferenc,

Onderstaand bestand werkt perfect. :D :D :D :D

Klein dingentje is het volgende:
Opdrachtdatums (kleur rood in klom W in werkblad offerteregistratie) veranderen allemaal
naar de datum van vandaag als ik in dit werkblad een rij verwijder en krijg ik niet hersteld met vorige.

Heb jij hier een oplossing voor???????

Voor de rest werkt het echt perfect

Je bent voor mij een kanjer zoals je mij hebt geholpen en dat geldt overigens voor iedereen die op dit forum andere helpen, bijdeze zijn jullie alllemaal kanjers. :thumb: :thumb: :thumb: :thumb: :thumb:

Groetjes,

Perry
 

Bijlagen

Laatst bewerkt:
Heb zelf de code iets verkeerd neer gezeet in de vorige post:
Code:
Function VASTMOMENT(CONTROLEER)

    If CONTROLEER = 3 And VASTMOMENT = ""  [COLOR="Red"]Then[/COLOR] 
           VASTMOMENT = Date
    else
          VASTMOMENT = ""
    end if
 
End Function

Nu moet deze het ook doen.

Zit zelf nu alleen nog te klooien met de code voor de tabbladen, bij mij thuis werkt hij volledig als dit nederlandse namen zijn (werk daar met XP-pro nl en office 2003-pro nl)
Op kantoor werk ik met een engelse 2000 versie en een ned. office 2003-pro, als ik hier nederlandsenamen als tabbladen heb dan werkt de code niet meer, verander ik deze naar engelsenamen dan weer wel. Daar wil ik nog iets op verzinnen.
edit: dit probleem heb ik hier op het forum geplaatst:
http://www.helpmij.nl/forum/showthread.php?p=1855513#post1855513
edit2: probleem is door Wigi verholpen mbv een userdifinedfunction.
Deze heb ik in de attachment veranderd, je zal zien nu werkt de code op de engelse en de nederlandse versies van Windows.

Ben blij dat ik je heb kunnen helpen, daar zijn we ten slotte voor op dit forum.


Groet,
Ferenc
 

Bijlagen

Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan