gegevens naar automatisch gegenereerd werkblad sturen

Pagina: 1
Acties:

Onderwerpen

Vraag


Acties:
  • 0 Henk 'm!

  • NetJet
  • Registratie: September 2009
  • Laatst online: 20-06-2024
Mijn vraag
Ik heb een spreadsheet gemaakt waarin ik automatisch een nieuw werkblad kan laten maken.
Nu wil ik graag een de hoogste kilometerstand in het reeds gemaakt werkblad Cel B2, automatisch laten verschijnen in het nieuwe gemaakte werkblad cel A1.

Voorbeeld: werkblad okt2020 is reeds automatisch gemaakt en daarin heb ik de kilometerstanden ingevoerd (ivm tankbeurten). Nu is de maand voorbij en wordt automatisch werkblad nov2020 gemaakt, waarin ik graag de hoogste kilometerstand van okt2020 automatisch in celA1 geplaatst zie. Nu doe ik dat handmatig.
Het probleem is dat ik geen verwijzing kan maken naar een cel, omdat de naam van het volgende werkblad op dat moment nog niet bekend is.

Relevante software en hardware die ik gebruik
Win10, Excel2016.

Wat ik al gevonden of geprobeerd heb
heb geprobeerd met max(eerste werkblad:laatstewerkblad;cel)
Dit werkt niet omdat dan steeds de hoogste kilometerstand geplaatst wordt en het verschil in tankbeurten altijd 0 is....

Alle reacties


Acties:
  • 0 Henk 'm!

  • g0tanks
  • Registratie: Oktober 2008
  • Laatst online: 01:31

g0tanks

Moderator CSA
Hoe gebeurt het aanmaken van een nieuw werkblad? Waarom kan het plaatsen van de kilometerstand niet er gelijk achter?

Ultrawide gaming setup: AMD Ryzen 7 2700X | NVIDIA GeForce RTX 2080 | Dell Alienware AW3418DW


Acties:
  • 0 Henk 'm!

  • NetJet
  • Registratie: September 2009
  • Laatst online: 20-06-2024
In het eerste werkblad wordt de naam getypt, daarna wordt van werkblad twee (dmv een programmacode) een kopie gemaakt met de naam van werkblad 1. Gegevens die standaard in werkblad 2 staan, worden automatisch meegenomen.

Maar ik wil van bijvoorbeeld werkblad 4 de laatste kilometerstand direct bij aanmaken van werkblad 5 geimplementeerd hebben.

Acties:
  • +2 Henk 'm!

  • Belindo
  • Registratie: December 2012
  • Laatst online: 21:44

Belindo

▶ ─🔘─────── 15:02

Wat is dat toch met Excel en voor alles een nieuwe sheet aanmaken. Wat als je nu een jaaroverzicht wil maken? Mag je van 12 sheets de informatie gaan opzoeken.

Offtopic reactie: gebruik gewoon één sheet met een tabel waar ook een datum (of desnoods een jaar/maand kolom). Dan kun je die tabel gebruiken voor een pivot waar je allemaal mooie dingen mee kunt doen. Sum, average, min, max, etc. etc. Per maand, per jaar, kwartaal, alles, wat je wilt.

Ontopic reactie: je hebt al wat VBA om de nieuwe sheet te maken. Hier hoef je maar een paar regels aan toe te voegen om:
- te kijken wat de laatste sheet is (op basis van nummer, niet naam)
- een MAX() doen op die laatste sheet over de kolom met de data waar je de max van wilt
- deze in een variabele op te slaan
- de nieuwe sheet maken en een naam geven
- cel A1 van de nieuwe sheet vullen met de waarde van de variabele

Coding in the cold; <brrrrr />


Acties:
  • 0 Henk 'm!

  • g0tanks
  • Registratie: Oktober 2008
  • Laatst online: 01:31

g0tanks

Moderator CSA
NetJet schreef op zondag 18 oktober 2020 @ 23:42:
Maar ik wil van bijvoorbeeld werkblad 4 de laatste kilometerstand direct bij aanmaken van werkblad 5 geimplementeerd hebben.
Als je de sheets nou iets noemt in de trant van 2020-01, 2020-02, 2020-03 etc. dan kan je op basis van de huidige sheetnaam en wat formules de naam van de vorige sheet bepalen (google maar, het kan zonder VBA).

Ultrawide gaming setup: AMD Ryzen 7 2700X | NVIDIA GeForce RTX 2080 | Dell Alienware AW3418DW


Acties:
  • 0 Henk 'm!

  • NetJet
  • Registratie: September 2009
  • Laatst online: 20-06-2024
@Belindo, dank je wel voor uw reactie, maar ik wil graag per maand(werkblad) gegevens invoeren die ik later terug kan zien.
Wb op het laatste werkblad een max doen over de kolom met data, dat zoek ik dus....
Wanneer ik daar voor ieder werkblad (in mijn geval 1 jaar, dus 12 werkbladen) vooraf een formule neer kan zetten die de max van de nog te maken werkbladen berekend, kan ik die ook neerzetten in het niet ingevulde werkblad die gebruikt wordt voor het automatisch aanmaken. Maar in de formule kan ik geen verwijzing maken naar een werkblad, omdat de naam daar nog niet bekend van is.....
Alles gaat automatisch, behalve de kilometerstand van het vorige werkblad in het nieuwe werkblad zetten....

@g0tanks, dank je voor het meedenken. De tabbladen krijgen automatisch een door mij in het eerste werkblad ingevoerde naam, nu is dat jun20, jul20, aug20 etc.... Ik heb al heel veel Gegoogled, daarom dat ik hier beland. Ik kan niets vinden als olossing voor mijn vraag/probleem....

Acties:
  • +1 Henk 'm!

  • Tazzios
  • Registratie: November 2001
  • Laatst online: 15:39

Tazzios

..

NetJet schreef op maandag 19 oktober 2020 @ 15:35:
@Belindo, dank je wel voor uw reactie, maar ik wil graag per maand(werkblad) gegevens invoeren die ik later terug kan zien.
Wb op het laatste werkblad een max doen over de kolom met data, dat zoek ik dus....
Wanneer ik daar voor ieder werkblad (in mijn geval 1 jaar, dus 12 werkbladen) vooraf een formule neer kan zetten die de max van de nog te maken werkbladen berekend, kan ik die ook neerzetten in het niet ingevulde werkblad die gebruikt wordt voor het automatisch aanmaken. Maar in de formule kan ik geen verwijzing maken naar een werkblad, omdat de naam daar nog niet bekend van is.....
Alles gaat automatisch, behalve de kilometerstand van het vorige werkblad in het nieuwe werkblad zetten....

@g0tanks, dank je voor het meedenken. De tabbladen krijgen automatisch een door mij in het eerste werkblad ingevoerde naam, nu is dat jun20, jul20, aug20 etc.... Ik heb al heel veel Gegoogled, daarom dat ik hier beland. Ik kan niets vinden als olossing voor mijn vraag/probleem....
Wil je het per maand kunnen invoeren OF per maand terug kunnen zien?

Zet alles in 1 tabel:
Om het vervolgens per maand terug kunnen zien gebruik je vervolgens tabellen met filters en een subtotaal onderaan of indien je fancy wilt doen draaitabellen. Met een draaitabel zou je zelfs grafieken kunnen maken van meerdere jaren.

Acties:
  • 0 Henk 'm!

  • NetJet
  • Registratie: September 2009
  • Laatst online: 20-06-2024
.Afbeeldingslocatie: https://tweakers.net/i/qV26nEp1Dq5NyZr9sFAtRAr0Uxo=/800x/filters:strip_icc():strip_exif()/f/image/rjKCQPEkPVn9dogu7VVvfnMP.jpg?f=fotoalbum_large

Afbeeldingslocatie: https://tweakers.net/i/zw9PnwkyZxWIu1MoD45HyWO_QZ4=/800x/filters:strip_icc():strip_exif()/f/image/cLGEnMXXmWS8w8zxqj6uwrVY.jpg?f=fotoalbum_large

Het eerste werkblad (maanden) wordt gebruikt om de maand in te voeren, waarna werkblad Leeg wordt gekopieerd en de in werkblad Maanden ingevoerde naam krijgt. Als voorbeeld maakte ik werkblad Okt20.
Wanneer ik naar werkblad Okt20 ga, moet ik bovenin (Cel B3) de kilometerstand invoeren, deze wordt dan in Cel J7 getoond, waarna ik latere kilometerstanden mee bewerk (om gereden kilometers te zien).

Nu wil ik graag dat in Cel B3 automatisch de laatste kilometerstand/hoogste kilometerstand van vorig werkblad gezet wordt.
Misschien dat de afbeelding alles iets duidelijker maakt....

Helaas kan er geen filmpje geupload worden

[ Voor 15% gewijzigd door NetJet op 19-10-2020 16:30 ]


Acties:
  • 0 Henk 'm!

  • CyPh
  • Registratie: Februari 2002
  • Laatst online: 28-08 09:27
Als in tabblad "maanden" alle maanden opgesomd worden in volgorde waarvan je sheets hebt gegenereerd, kun je daar toch automatisch veld A22 van elke maand tonen. Die kun je dan toch meesturen naar het nieuw te genereren werkblad?

Of denk ik nu te simpel? :?

Uw advertentie hier?


Acties:
  • 0 Henk 'm!

  • NetJet
  • Registratie: September 2009
  • Laatst online: 20-06-2024
@CyPh, bedank voor uw reactie.
Ik typ eerst in werkblad 'Maanden' de naam, hier bijvoorbeeld okt20. Daarna wordt het werkblad pas gegenereerd. Het maakt niet uit welke naam je typt, het volgende werkblad wordt met die naam gegenereerd.
Juist in het laatst aangemaakte werkblad de laatste kilometerstand van het voorgaande werkblad krijgen, dat is mijn probleem. Ik kan namelijk in het werkblad 'Leeg' (het werkblad dat wordt gekopieerd en de nieuwe naam krijgt) geen verwijzing maken naar een voorgaand werkblad.... (in ieder geval weet ik niet hoe).
Dus eigenlijk zoek ik iets dat wanneer het nieuwe werkblad wordt gemaakt, er automatisch ook de verwijzing naar een cel in het vorige werkblad gemaakt wordt.

Acties:
  • 0 Henk 'm!

  • CyPh
  • Registratie: Februari 2002
  • Laatst online: 28-08 09:27
NetJet schreef op maandag 19 oktober 2020 @ 17:28:
@CyPh, bedank voor uw reactie.
Ik typ eerst in werkblad 'Maanden' de naam, hier bijvoorbeeld okt20. Daarna wordt het werkblad pas gegenereerd. Het maakt niet uit welke naam je typt, het volgende werkblad wordt met die naam gegenereerd.
Juist in het laatst aangemaakte werkblad de laatste kilometerstand van het voorgaande werkblad krijgen, dat is mijn probleem. Ik kan namelijk in het werkblad 'Leeg' (het werkblad dat wordt gekopieerd en de nieuwe naam krijgt) geen verwijzing maken naar een voorgaand werkblad.... (in ieder geval weet ik niet hoe).
Dus eigenlijk zoek ik iets dat wanneer het nieuwe werkblad wordt gemaakt, er automatisch ook de verwijzing naar een cel in het vorige werkblad gemaakt wordt.
Toon eens een screenshot van werkblad Maanden

Uw advertentie hier?


Acties:
  • 0 Henk 'm!

  • NetJet
  • Registratie: September 2009
  • Laatst online: 20-06-2024
Afbeeldingslocatie: https://tweakers.net/i/i4dOCOo0XGgy1pknFJO12l1d-ME=/800x/filters:strip_icc():strip_exif()/f/image/POIwirXuhqOJc7aJJ1pDAPU4.jpg?f=fotoalbum_large

ik typ in de eerste kolom de naam, wanneer ik op enter druk zet hij zelf 2020 in de kolom jaar.
Heb de verborgen kolommen zichtbaar gemaakt.

Met verborgen kolommen:
Afbeeldingslocatie: https://tweakers.net/i/--S4y6O1HEwjVYsYEVC4dBxmDvU=/800x/filters:strip_icc():strip_exif()/f/image/SeppQS6e1MpJsFou8IRZd6N6.jpg?f=fotoalbum_large

[ Voor 28% gewijzigd door NetJet op 19-10-2020 21:58 ]


Acties:
  • 0 Henk 'm!

  • NetJet
  • Registratie: September 2009
  • Laatst online: 20-06-2024
Dit is de programmacode van werkblad 'Maanden'.

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("PresentatieNamen")) Is Nothing Then Exit Sub 'niets verandert in bewust bereik=stoppen
Dim sh As Worksheet, c As Range, bl As Worksheet, bGevonden As Boolean
For Each c In Range("PresentatieNamen").SpecialCells(xlConstants) 'loop alle niet-lege cellen in dat bereik af
bGevonden = False 'nog niet gevonden
For Each sh In Sheets 'loop alle werkbladen af
If UCase(sh.Range("G1").Formula) = UCase("=" & ActiveSheet.Name & "!" & c.Address(0, 0)) Then 'verwijst cel G1 in dat werkblad naar deze cel
bGevonden = True 'dan heb je gewenste werkblad gevonden
If UCase(sh.Name) <> UCase(c.Value) Then 'is de naam van dat werkblad niet gelijk aan deze in de cel, dan gaan we die moeten aanpassen
On Error Resume Next 'doorgaan bij fouten
Set bl = Nothing: Set bl = Sheets(c.Value) 'kijk eerst of er geen andere werkblad al zo noemt
On Error GoTo 0 'einde doorgaan bij fouten
If bl Is Nothing Then 'geen ander werkblad gevonden
sh.Name = c.Value 'blad hernoemen
Else
MsgBox "blad " & sh.Name & " kan niet hernoemd worden naar " & c.Value & " want er noemt al een blad zo" 'het gaat niet !!!!
End If
End If
Exit For 'niet meer verder zoeken naar werkblad met deze naam
End If
Next

If Not bGevonden Then 'werkblad niet gevonden, dan ga je er een nieuwe meoten toevoegen
For Each sh In Sheets
If InStr(1, UCase(sh.Range("G1").Formula), UCase("=" & Target.Parent.Name & "!")) > 0 Then 'zoek een werkblad met een formule in G1 die verwijst naar presentatielijt
sh.Copy before:=Sheets(Sheets.Count) 'maak kopie van dat werkblad helemaal achterin werkmap
With ActiveSheet
On Error Resume Next 'doorgaan bij fouten
Set bl = Nothing: Set bl = Sheets(c.Value) 'kijk eerst of er geen andere werkblad al zo noemt
On Error GoTo 0 'einde doorgaan bij fouten
If bl Is Nothing Then 'geen ander werkblad gevonden
.Name = c.Value 'blad hernoemen
Else
MsgBox "blad " & .Name & " kan niet hernoemd worden naar " & c.Value & " want er noemt al een blad zo" 'het gaat niet !!!!
End If
.Range("G1").Formula = "=" & Target.Parent.Name & "!" & c.Address(0, 0)
End With
Exit For
End If
Next
End If
Next
Application.Goto Target.Cells(1, 1), False
End Sub

Acties:
  • 0 Henk 'm!

  • NetJet
  • Registratie: September 2009
  • Laatst online: 20-06-2024
beste helpers,

ik heb het met hulp gevonden.
Heb in de programmacode een regel toegevoegd:

[code.Range("J7").Formula = "=max(" & Sheets(Sheets.Count - 2).Name & "!J:J)"
[/code] (zonder 'çode' ervoor en erna)

Wanneer je de ("J7") wijzigt in een andere cel, zet hij daar de stand neer.

Iedereen bedankt voor het meedenken!

Grtz,
Henk

[ Voor 4% gewijzigd door NetJet op 21-10-2020 16:18 ]

Pagina: 1