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

data filteren naar rapport

Status
Niet open voor verdere reacties.

stefano

Gebruiker
Lid geworden
22 mei 2004
Berichten
865
Hoi, hallo,


..........................persoon 1.....persoon 2....persoon 3....
gewicht......kg.........85..................75................80...........
lengte........cm.......185...............165...............170..........

Waar ik op zoek naar ben is een makkelijke manier om de gegevens van persoon 1 of persoon 2 over te zetten naar een nieuw bestand. Let wel : de ene keer moeten alle gevevens , zijnde gewicht, lengte, ... overgezet worden, de andere keer enkel het gewicht. Het eindresultaat is dus eigenlijk een steekkaart van één persoon met al dan niet alle beschikbare gegevens .

Hoe pak ik dit best aan ?

dbv stefano :thumb:
 
Nieuw bestand of nieuw tabblad?
Als bestamd moet de bestands naam nog aan een bepaalde voorwaarde voldoen, of kan er bv een naam gebruikt worden (die in het bron bestand staat)?
E.a. zou met 2 macro's, 1 per te maken keuze wel opgelost kunnen worden.
Om daar echt een uitspraak over te kunnen doen is het waarschijnlijk handiger als je het bestand (of een deel bv met maar een paar kolommen) hier upload naar Helpmij, je moet xls file wel eerst zippen.
N.b. om hoe veel kolomen gaat het?

Als je niet met twee macro (handmatig) per kolom wilt aangeven hoe excel er mee om moet gaat zul je een extra rij moeten maken met daarin bv een 1 als het alleen hetb gewicht moet zijn en een 2 als alle data mee moet. Die actie lijkt me echter alleen zinvol als je dit vaker moet doen en de macro vaker wilt gebruiken.

De macro(s) maken zal overigens ook nog wel wat puzzel werk worden...
 
Laatst bewerkt:
Het gegevensbestand is één bestand (zie bijlage).
De makro of de toepassing zou één gegevensreeks moeten omzetten naar een nieuw bestand. Wat betreft de naam, die maakt me niks uit.

dank bij voorbaat
 

Bijlagen

Dat het gegevens bestand nu één bestand is, is me duidelijk.
Hoe wil je echter dat de data (per kolom) opgeslagen wordt, elke kolom (al dan niet met alle gegevens) in een eigen nieuw bestand of één bestand met tabbladen met daarop de gegevens; is meer het idee van een steekkaart. Met losse bestanden lijkt me dat wat lasig worden en verlies je de samenhang.
N.b. is het niet handiger om dan met Access te gaan werken als je 'steekkaarten' wilt, access is daar bij uitstek geschikt voor.
Helaas staat daarvoor je data verkeerd, de X- en Y-as zouden omgedraaid moeten worden. Maar dat is ook wel op te lossen, (waarden in kolom A zouden in rij 1 moeten staan en op de rijen 2 en verder persoon 1, 2, 3, etc.)
Geef even aan of access een optie zou zijn.
 
Laatst bewerkt:
rapport

Bedoeling is de gegevens naar een ander (tijdelijk) bestand te verplaatsen en dan te mailen. Met andere woorden, enkel de gegevens van die ene persoon mogen in het bestand staan ! De rangschikking van die gegevens in het bestand is vertikaal, en zo veel mogelijk in briefvorm (analyserapport).
 
Heb wat gemaakt, voor een juiste werking zijn er een paar voorwaarden.
De macro (in het voorbeeld) werkt alleen als het orginele document Tabel.xls heet en als het in de root van C: staat (dus niet in een sub map).
Dit is echter allemaal wel aan te passen als je dat zou willen.

Hier de code van de macro (uit de bijlage) die alles van één persoon in één bestand zet.

Sub Macro1()
'
' Macro1 Macro
' De macro is opgenomen op 19-6-2004 door --.
'

Application.DisplayAlerts = False
Workbooks.Add
ActiveWorkbook.SaveAs Filename:="C:\x.xls", FileFormat:=xlNormal, _
Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
CreateBackup:=False
Windows("tabel.xls").Activate
Range("A1:C6").Select
Selection.Copy
Windows("x.xls").Activate
ActiveSheet.Paste
Application.CutCopyMode = False
ActiveWorkbook.SaveAs Filename:="C:\" & Range("C1") & ".xls", FileFormat:=xlNormal _
, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
CreateBackup:=False
ActiveWindow.Close
Columns("C:C").Select
Selection.Delete Shift:=xlToLeft
Range("A1").Select
Application.DisplayAlerts = True
End Sub
----------------------------------------------------------------------
Toeliching:
Application.DisplayAlerts = False : Noodzakelijk anders krijg je welke keer de vraag of bestand x over schreven mag worden

Workbooks.Add : Maak een nieuw bestand
ActiveWorkbook.SaveAs Filename:="C:\x.xls", FileFormat:=xlNormal, _
Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
CreateBackup:=False : en noem het x.xls
Windows("tabel.xls").Activate : Ga terug naar Tabel.xls
Range("A1:C6").Select : Selecteer range
Selection.Copy : Kopieer
Windows("x.xls").Activate : Ga naar X.xls
ActiveSheet.Paste : Plakken
Application.CutCopyMode = False
ActiveWorkbook.SaveAs Filename:="C:\" & Range("C1") & ".xls", FileFormat:=xlNormal _
, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
CreateBackup:=False : Sla dit bestand nu op met als naar de waarde in cel C1
ActiveWindow.Close : Sluit dit bestand (je gaat dus terug naar Tabel.xls)
Columns("C:C").Select : Selcteer rij C
Selection.Delete Shift:=xlToLeft : En verwijder deze.
Range("A1").Select : Maak cal A1 actief
Application.DisplayAlerts = True : Zet de Alerts weer aan
End Sub

Macro twee werkt het zelfde selecteerd alleen een kleiner gebied.

N.b. Deze macro wijzigd ook je orginele bestand, zorg er dus voor dat je altijd een copy hebt!
 

Bijlagen

Laatst bewerkt:
vervolg

Hoi withaar, bedankt voor je antwoord.

Wat ik een klein beetje mis is de mogelijkheid om bv één kolom aan te klikken/aan te duiden en enkel van die kolom het aparte rapport aan te maken.

Met jouw kennis is dat zeker mogelijk, maar kan je dat ook eens in elkaar boksen voor me ?

alvast dank bij voorbaat,

stefano
 
Niet met deze code, want die gooit de rest van de data weg, zou je kolom 10 (Persoon 8) geselecteerd hebben han je daarna niet meer terug naar bv kolom 5 (Persoon 3).
Als dat geen probleem is, is er wel wat de maken dat alle kolommen vanaf kolom C tot de geselecteerde verwijderd worden voordat een ander actie gedaan wordt.
 
stefano

Hoi withaar,

ik zal eerst eens uittesten op een groot bestand met veel data. Als de snelheid voldoende is kan ik zowel telkens alle rapporten uitvoeren en overschriiven. Ik laat het je bij gelegenheid weten.

Bedankt voor alle moeite !!! :thumb:
 
Verwijder hulpje.

Sub Macro4()
'
' Macro4 Macro
' De macro is opgenomen op 20-6-2004 door --.
If ActiveCell.Column < 4 Then End

ActiveCell.Offset(0, -1).Select
Columns("C:" & Mid(ActiveCell.Address, 2, (InStr(2, ActiveCell.Address, "$")) - 2)).Select
Selection.Delete Shift:=xlToLeft
Range("A1").Select

End Sub

Voorbeeld in bijlage
 

Bijlagen

Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan