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

gegevens kopieren

Status
Niet open voor verdere reacties.

wacco

Gebruiker
Lid geworden
9 mrt 2006
Berichten
229
Hallo,

Ik gebruik onderstaande formule om een selectie te maken in een aantal cellen van mijn gegevens.
Door deze formule, wordt de selectie opeenvolgend genummerd.

Om welke gegevens het gaat wordt weer bepaalt in de cellen van kolom B, hier kan een 1 of een 0 staan
De gegevens waar een selectie op plaats moet vinden met onderstaande formule, staan in de cellen : CQ16 t/m FZ686.

De opeenvolgende nummering vindt plaats in de cellen CL16 t/m CL686

PHP:
=ALS(B16=1;AANTAL.ALS($B$16:B16;1);"")

Graag zou ik geselecteerde cellen (binnen CQ16 t/m FZ686) willen kopieren naar een ander werkblad, waarbij de verschillende rijen met gegevens direct onder elkaar worden geplaatst.
Dit mag gebeuren na bediening van een commandbutton, maar nog mooier zou zijn elke keer als er in de cellen van kolom B iets veranderd.
Elke keer als er iets veranderd in een cel in kolom B, moeten de bestaande gegevens in het blad waar naar gekopieerd wordt worden overschreven. (gegevens moeten dus niet aangevuld worden)
Waarschijnlijk zal de opeenvolgende nummering, nooit boven 40 uitkomen zodat de ruimte welke nodig is op het blad waarnaar gekopieerd wordt beperkt is.
 
Even de werkbladnamen aanpassen in onderstaande code:

Code:
Sub Kopieer()
    Sheets("Data").Range("CL16", "FZ686").Copy
    With Sheets("AnderWerkblad")
        .Range("A1").PasteSpecial Paste:=xlPasteValues
        .Cells.AutoFilter Field:=1, Criteria1:="="
        Selection.Delete Shift:=xlUp
    End With
End Sub
 
@Ahulpje
Dank voor de snelle reactie.
Maar helaas gaan er een aantal dingen mis.
Er komt een conflict met een ander stukje VBA, wat een eerdere code van jou is.
Ook wordt het volledige sheet gekopieerd, en dus niet de slectie van cellen.
Ook is het blad waarnaar wordt gekopieerd, volledig gefilterd (alle kolommen een filter)

Ik heb nu het volledige bestand bijgevoegd.
Het is de bedoeling dat de cellen in de kolommen CM t/m FZ van het tabblad "Basisdata" waarin de kolom CL een 1 t/m .... is geplaatst, dat deze gegevens worden geplaatst in het tabblad "Grafiek" op de eerste 40 rijen.
In het Tabblad "Basisdata" worden de kolommen CL t/m FZ verborgen, ook de eerste 40 rijen in het tabblad "Grafiek" zullen verborgen worden.
In dit laatste tabblad is het de bedoeling dat grafieken worden weergegeven van de gesecteerde gegevens in de eerste 40 rijen.
Waarschijnlijk doe ik dit selecteren op een omslachtige manier, maar ik weet zo snel geen andere manier om de juiste data voor de grafieken te selecteren.
In deze grafieken wordt gebruik gemaakt van hoog/gelijk en lage waarden, vandaar deze vrij grote (miscchien omslachtige manier) van gegevens selecteren.
Ik hoop dat er zo wat meer duidelijkheid is wat ik graag zou willen.
Wachtwoord voor tabbladen en VBA is nu : test
 

Bijlagen

  • KMI werkversie 10 (helpmij).xlsm
    1 MB · Weergaven: 8
Zie Module1.Kopieer.
En zie ook Function ButtonsVisible.
 

Bijlagen

  • KMI werkversie 10 (helpmij)AH.xlsm
    882,1 KB · Weergaven: 13
@Ahulpje
Wederom hartelijk dank.
Lijkt allemaal perfect te werken, heb alleen ff de range aangepast, was CL17 maar is nu CL16.
Anders miste ik de eerste regel (nummer 1)
Ga alles verder uit testen, maar ik ben hier ontzettend blij mee, nogmaals bedankt :thumb:
 
@Ahulpje
Had gedacht dat ik de geselecteerde gegevens welke gekopieerd werden, te gebruiken om verschillende grafieken te maken.
Elke rij in de gekopieerde gegevens in blad Grafiek, krijgt een eigen grafiek.
Omdat de gekozen gegevens in het blad Basisdata kunnen wisselen, had ik gedacht met deze oplossing ook de gegevens voor de grafieken te kunnen aanpassen.
Maar omdat de gegevens in het blad Grafiek worden verwijderd, zorgt dit ervoor dat de grafieken op een ander blad geen gegevens hebben en dus een foutmelding geven.
Een formule op dit werkblad bevat een of meer ongeldige verwijzingen

Kan wel alleen de inhoud van de cellen in blad Grafiek verwijderen met
Code:
Cells.Range("A10:CO50").ClearContents
Maar na het kopieren sluiten de rijen niet aan.
Als deze lege rijen even later in de code worden verwijderd ontstaat hetzelfde probleem net verwijderde verwijzingen.
Het is natuurlijk mogelijk om het verwijderen van de lege rijen niet te doen, en de lege regels te laten staan.
Het gevolg is dan wel dat er op de plaats van de lege rij, een grafiek zonder gegevens wordt gemaakt.
Dat is niet zo mooi, vandaar dat de rijen aan moesten sluiten.
Is er een mogelijkheid om dit op te lossen ?
 
Natuurlijk is dat op te lossen, maar dan heb ik wel de nodige vragen:

  • Is het één soort grafiek?
  • Heb je daar een voorbeeld van?
  • Staan alle (maximaal 40?) grafieken op één werkblad?
  • Is het wellicht een optie om maar één grafiek te tonen waarbij je eenvoudig door de onderliggende dataregels kunt scrollen en de grafiek zich daaraan aanpast?
Zie voor een voorbeeld de bijlage, selecteer een maand in rij 1 om de grafiek van die maand te tonen, gebruik eventueel de pijtjes toetsen om snel te scrollen.
 

Bijlagen

  • Grafiek.xlsm
    22,3 KB · Weergaven: 7
Het is 1 soort grafiek, in het opgestuurde bestand uit antwoord #3 staat in het blad grafiek een voorbeeld.
Het aantal van 40 is een erg groffe inschatting, maar wel staan alle grafieken op 1 tabblad.
Ook zullen deze grafieken later ook eventueel geprint moeten worden.....maar dat is weer van latere zorg :D
De optie die jij hebt meegestuurd ziet er prachtig uit, zou eventueel een oplossing zijn.
Maar omdat het ook nog een geprint moet worden leek het mij handiger om alle grafieken op 1 tabblad samen te vatten.
Vandaar dat ik graag de rijen aaneen gesloten wilde hebben, eventuele lege grafieken staan dan onder diegene met gegevens.
 
Volgens mij heb ik het mijzelf, en natuurlijk ook Ahulpje, erg moeilijk gemaakt.
Want waarom niet op het tabblad Grafiekdata een Vlookup functie gebruiken om de benodigde gegevens te krijgen.
Bereik aangemaakt met daarin alle benodigde gegevens, dit genoemd : Grafiekdata
In kolom A van dit blad nummering geplaatst, in dit geval in A11 t/m A40 (1 t/m ...)
In de cellen B6 t/m CO6 nummering 2 t/m 93 (dit zijn het aantal cellen in het bereik)
Daarna in de cellen B11 t/m CO 40 Vlookup functie geplaatst

Code:
=VERT.ZOEKEN($A11;GrafiekData;B$6;ONWAAR)

Gegevens worden direct veranderd, en gegevens in de daarbij behorende grafieken wordt nu ook direct aangepast.

Ahulpje, wederom hartelijk bedankt voor je inzet en oplossingen, maar ik had wat verder door moeten denken en zo iedereen wat tijd kunnen besparen :(

Ik heb echter nog wel een vraag over de grafiek.
De gegevens in de grafieken worden nu wel direct aangepast, maar de teksten in de Horintale as worden niet aangepast als in de gegevens b.v. het jaartal veranderd.
Is er een mogelijkheid om alle horizontale assen in de verschillende grafieken in 1x te vernieuwen b.v. bij het openen van het werkblad??
 
Laatst bewerkt:
Zijn de gegevens voor de horizontale as nog steeds afkomstig uit Basisdata!$CR$8:$DJ$8?
Bij mij wordt de horizontale as wel ververst zodra in bovenstaande range iets gewijzigd wordt.
Probeer anders eens:
Code:
    Dim myChart As ChartObject
    For Each myChart In Sheets("Grafiek").ChartObjects
        myChart.Chart.Refresh
    Next
Mocht je er niet uitkomen plaats dan weer een voorbeeld.
 
Na opnieuw openen blijkt het inderdaad gewoon goed.
Ga zeker je code uitproberen.
Nu eerst ff een paar daagjes er tussen uit.
Wederom bedankt.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan