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

Doormiddel van een macro een sheet openen

Status
Niet open voor verdere reacties.

Geer1986

Gebruiker
Lid geworden
14 okt 2008
Berichten
11
Wie kan mij helpen? Ik heb een probleem. Wat ik wil is dat er via een macro een templatesheet wordt geopend. Ik heb al een stukje code dat automatisch een nieuwe sheet dient te openen en ook gelijk de naam verandert in oplopende volgorde. Alleen krijg ik deze niet aan de praat. Daarbij zou ik ook graag willen dat deze sheet een template is die geladen wordt. Is dit mogelijk??? Ik zal de macro in text bestandje bijvoegen.

Alle hulp is zeer welkom,
alvast bedankt.

Geer1986
 

Bijlagen

Laatst bewerkt:
Wie kan mij helpen? Ik heb een probleem. Wat ik wil is dat er via een macro een templatesheet wordt geopend. Ik heb al een stukje code dat automatisch een nieuwe sheet dient te openen en ook gelijk de naam verandert in oplopende volgorde. Alleen krijg ik deze niet aan de praat. Daarbij zou ik ook graag willen dat deze sheet een template is die geladen wordt. Is dit mogelijk??? Ik zal de macro in text bestandje bijvoegen.

Alle hulp is zeer welkom,
alvast bedankt.

Geer1986

Hmm. De code kijkt naar de namen van de tabbladen. Als deze naam numeriek is wordt er een teller verhoogd. Uiteindelijk wordt een nieuwe tabblad aangemaakt met de waarde van de teller.
De code werkt niet als de naam van de tabbladen niet numeriek is.
Bovendien wordt er een lege sheet geopend en geen template.

Met vriendelijke groet,


Roncancio
 
Hoe zou ik deze code dan moeten aanpassen zodat er wel een template geladen wordt?
Want dat is de richting die ik uiteindelijk opmoet.
 
De uiteindelijk naam die weergegeven moet worden in de sheet is Urenlijst week 1, en de volgende zou dan moeten worden Urenlijst week 2 enz. Nu heet die template alleen nog Urenlijst week.

Groeten geer
 
Bijgevoegde code maakt een kopie van het 1e werkblad, zet het aan het eind van de werkbladen en geeft het de naam Urenlijst week + het eerstvolgende getal. Hierbij ervanuit gaande dat de andere werkbladen ook Urenlijst week &getal heten.

Code:
Sub AddNumberSequence()
Dim lNum As Long
    Worksheets(1).Copy After:=Worksheets(Worksheets.Count)
    lNum = Right(Worksheets(Worksheets.Count - 1).Name, Len(Worksheets(Worksheets.Count - 1).Name) - 14) + 1
    Worksheets(Worksheets.Count).Name = "Urenlijst week" & lNum
End Sub

Met vriendelijke groet,


Roncancio
 
Hartstikke bedankt, je hebt me echt super geholpen. Ik loop alleen nu tegen het volgende probleem. Sommige cellen dienen gegevens op te halen uit de sheet van de voorgaande week. Nu weet ik niet hoe dat normaal gebeurt maar ik denk dat het nog wat ingewikkelder is geworden nu de namen van de sheets per week veranderen. Zou je me hier ook mee kunnen helpen??
Het zou erg gewaardeerd worden.

groeten Geer
 
Hartstikke bedankt, je hebt me echt super geholpen. Ik loop alleen nu tegen het volgende probleem. Sommige cellen dienen gegevens op te halen uit de sheet van de voorgaande week. Nu weet ik niet hoe dat normaal gebeurt maar ik denk dat het nog wat ingewikkelder is geworden nu de namen van de sheets per week veranderen. Zou je me hier ook mee kunnen helpen??
Het zou erg gewaardeerd worden.

groeten Geer

Tja, geef maar aan om welke cellen het van toepassing is, dan pas ik het wel aan.

Met vriendelijke groet,


Roncancio
 
Het gaat om de volgende cellen:

De cellen die data uit de sheet van de vorige week moeten halen:
Cel L12 t/m L15 uit de zelfde cellen
Cel L17 t/m L23 uit de zelfde cellen
Cel B16 uit cel B14
Cel B8 uit B8 van vorige week + 1 ( het gaat hier om het weeknummer)

Dit rijtje staat in deze volgorde 14 keer onder elkaar met steeds 21 rijen verschil per cel.
Dus L12 is in de volgende rij L33. Maar als jij me met het eerste rijtje kan helpen kan ik misschien zelf wel uitvogelen hoe ik de anderen moet aanpassen. Dan steek ik er ook nog wat vanop:D

Alvast bedankt,
Geer
 
Laatst bewerkt:
Het gaat om de volgende cellen:

De cellen die data uit de sheet van de vorige week moeten halen:
Cel L12 t/m L15 uit de zelfde cellen
Cel L17 t/m L23 uit de zelfde cellen
Cel B16 uit cel B14
Cel B8 uit B8 van vorige week + 1 ( het gaat hier om het weeknummer)

Dit rijtje staat in deze volgorde 14 keer onder elkaar met steeds 21 rijen verschil per cel.
Dus L12 is in de volgende rij L33. Maar als jij me met het eerste rijtje kan helpen kan ik misschien zelf wel uitvogelen hoe ik de anderen moet aanpassen. Dan steek ik er ook nog wat vanop:D

Alvast bedankt,
Geer

Cel B8 uit B8 van vorige week + 1
Dat lijkt mij van de huidige week, dus een soort kringverwijzing.

Dit rijtje staat in deze volgorde 14 keer onder elkaar met steeds 21 rijen verschil per cel.
Geldt het opschuiven van 21 rijen voor al de bovenstaande cellen?

Met vriendelijke groet,


Roncancio
 
Ja die 21 rijen gelden voor alle cellen.
Ter verduidelijking:
Het betreft een urenlijst voor een machines van een soort typen. In die lijst worden de uren bijgehouden per machine. De data van een machine staat bij elkaar. 21 rijen onder de eerste rij van machine 1 begint de eerste rij van machine 2. Dus om de 21 rijen begint het zelfde rijtje. Dus om elke 21 rijen kun je in die cel één soort specifieke data aflezen van de desbetreffende machine, maar die verschilt dus in waarde per machine.

Ik weet niet precies wat je met een kringverwijzing bedoelt maar het gaat om het weeknummer van de betreffende week. Die moet elke keer met 1 worden verhoogd als de nieuwe sheet geopend word.

Groeten Geer
 
Ik heb de code uitgebreid.
Ik hoor wel wat je bevindingen zijn.
Code:
Sub AddNumberSequence()
Dim lNum As Long
    
    Worksheets(1).Copy After:=Worksheets(Worksheets.Count)
    If IsNumeric(Right(Worksheets(Worksheets.Count - 1).Name, 1)) = False Then
        lNum = 1
    Else
        lNum = Right(Worksheets(Worksheets.Count - 1).Name, Len(Worksheets(Worksheets.Count - 1).Name) - 14) + 1
    End If
    Worksheets(Worksheets.Count).Name = "Urenlijst week" & lNum
    Worksheets(Worksheets.Count).Range("L12:L15").Value = Worksheets(Worksheets.Count - 1).Range("L" & 12 + 21 - ((lNum - 1) * 21) & ":L" & 15 + 21 - ((lNum - 1) * 21)).Value
    Worksheets(Worksheets.Count).Range("L17:L23").Value = Worksheets(Worksheets.Count - 1).Range("L" & 17 + 21 - ((lNum - 1) * 21) & ":L" & 23 + 21 - ((lNum - 1) * 21)).Value
    Worksheets(Worksheets.Count).Range("B16").Value = Worksheets(Worksheets.Count - 1).Range("B" & 14 + 21 - ((lNum - 1) * 21)).Value
    Worksheets(Worksheets.Count).Range("B8").Value = Worksheets(Worksheets.Count - 1).Range("B" & 8 + 21 - ((lNum - 1) * 21)).Value + 1
    
    
End Sub


Met vriendelijke groet,


Roncancio
 
Hoi,
Ik ben er even mee bezig geweest, maar de maco doet 't nu. Alleen er zitten een paar foutjes in. Zo pakt hij netje de runninghours van de vorige week en kopieert hij deze naar Last week in de sheet van deze week. Alleen de 3e week pakt opeens weer de runninghours van week1 in plaats van de runninghours week2. En hij geeft een error als ik de sheet wil openen van de 3e week. Ook pakt hij de draaiuren van de overige machines niet mee, bij elke sheet.

Ik zal bestand bijvoegen dan wordt het wat duidelijker denk ik

P.S. Ik heb het aantal machines teruggebracht naar 3 want anders was het bestand te groot.

Groeten Geer
 

Bijlagen

Laatst bewerkt:
Hoi,
Ik ben er even mee bezig geweest, maar de maco doet 't nu. Alleen er zitten een paar foutjes in. Zo pakt hij netje de runninghours van de vorige week en kopieert hij deze naar Last week in de sheet van deze week. Alleen de 3e week pakt opeens weer de runninghours van week1 in plaats van de runninghours week2. En hij geeft een error als ik de sheet wil openen van de 3e week. Ook pakt hij de draaiuren van de overige machines niet mee, bij elke sheet.

Ik zal bestand bijvoegen dan wordt het wat duidelijker denk ik

Groeten Geer

Waar is het bestand?

Met vriendelijke groet,


Roncancio
 
Ik heb het bestand aangepast.
Ik hoop dat het nu voldoet.

Als er vragen/opmerkingen zijn dan hoor ik het wel.

Met vriendelijke groet,


Roncancio
 

Bijlagen

in eerste instantie deed hij het niet naar behoren. Hij nam de data van week 2 niet mee naar week 3, en hij nam ook de anderen machines niet mee naar de volgende week. Dit laatste probeerde ik op te lossen door de code regels voor elke machine appart in te voeren. Vervolgens heb ik overal het stukje + (lNum * 21 - 21) uit gehaald en nu doet hij het perfect. Hij kopieert en alle data van alle machines mee en ook nog eens van week 2 naar week 3 en ezvt..
Het nadeel hiervan is dat elke keer als je een nieuwe machine wilt bijvoegen ook deze coderegels moeten worden bijgeschreven, dit is voor de monteurs niet te doen. Dus dat "automatisch herhalen stukje" is wel nodig alleen was dat de rede waarom alles niet werkte denk ik. Kun je dat voor me aanpassen en werkend krijgen??

Groeten,
Geer
 
Laatst bewerkt:
Ik heb een (kleine) aanpassing gedaan. Indien dit niet het gewenste resultaat geeft, moet je je bestand maar opsturen zodat ik kan zien wat je aangepast heeft.

Met vriendelijke groet,


Roncancio
 

Bijlagen

hier is het bestand, ik heb ook wat weken ingevuld. zo wordt het de bedoeling misschien wat duidelijker. De Runninghours zijn het totaal gelopen aantal uren vanaf aanschaf van een machine. bij last done staat vermeld op hoeveel uur dat specifieke onderdeel is vervangen.

Geer
 

Bijlagen

Is het al gelukt? of zijn er nog vragen? Ik heb er zelf ook nog naar gekeken met anderen mensen maar ben er niet uitgekomen.

Ik hoop van je te horen,

Groeten Geer
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan