Kijk eens in de openingpost daar staat volgens mij toch in hoe je een opstartmacro file kan maken, als je deze hebt worden je macro's altijd bij het opstarten van excel al geladen, en als je het wilt kunnen die ook aan een knopje in excel hangen.quote:Op woensdag 20 maart 2013 16:38 schreef GoodGawd het volgende:
Hoe switch je met een excel macro tussen twee files?
Bijvoorbeeld ik heb een bestand op mijn pc staan waar ik data in verzamel en van internet haal ik elke week een excel sheet waarmee ik de data mee aanvul.
Vervolgens pas ik de macro toe op die tijdelijke file, die vervolgens het hoofd bestand opent:
Workbooks.Open Filename:= _
"G:\blablala
Uit het tijdelijke file copy paste ie data en paste in Main file. Dit moet ie een stuk of 6x doen, dus hij moet telkens weer de ene file selecteren en dan weer de andere. Hoe gaat dat?
Ah op die manier het zal volgens mij dan iets van select.workbook....moeten zijn, ipv open.quote:Op donderdag 21 maart 2013 09:50 schreef GoodGawd het volgende:
Ik bedoel wat anders, namelijk:
Je start je macro in file A, die zegt copy paste cel X uit file A, open file B en paste in file B.
Afin dat is geen probleem. Je ziet nu file B voor je neus met gecopy paste deel uit file A.
Maarrr, nu wil ik dat hij me weer terug brengt naar file A en weer iets nieuws kopieert en dan weer naar file B paste. etc etc.
Alleen die schakeling weet ik niet te maken.
De eerste keer is geen probleem want dan opent hij file B, maar voor opvolgende copy paste is file B al geopend, dus command OPEN file B werkt niet. Moet iets anders hebben...
| 1 | Windows("bestandsnaam").Activate |
| 1 | Range("B2").Value = Workbooks("A.xls").Sheets("hiero").Range("A3").Value |
Er moet nog tekst bij en die moet weer staand, alleen de tabel moet liggend.quote:Op maandag 25 maart 2013 19:03 schreef DaFan het volgende:
Dan maak je hem in Word toch landscape?
Eerst sectie-einde invoegen - paginainstelling - landscape - spul toevoegen - weer sectie-eind - normaal.
Thanks, maar wilde 'n nog wel kunnen aanpassenquote:Op maandag 25 maart 2013 20:10 schreef DaFan het volgende:
Hm je kan de tabel selecteren en kopiëren in Excel - dan in Word Plakken Speciaal - Als afbeelding. Dan kan je hem gewoon roteren zoals een normale afbeelding. Je kan hem daarna alleen niet meer aanpassen in Word.
Ik heb Office 2013 daar is afbeeldingen enzo net even wat gemakkelijker maar in 2007 moet het ook zo werken.
Succes.
Dan moet je het wel in landscape doen en een tekstveld maken waar je je tekst in zet. En die dan roteren.quote:Op maandag 25 maart 2013 21:49 schreef _Twinkle het volgende:
[..]
Thanks, maar wilde 'n nog wel kunnen aanpassen
Excel 2010 Nederlands: ALT R + O + Mquote:Op dinsdag 26 maart 2013 21:47 schreef Piger het volgende:
Ik probeer zoveel mogelijk gebruik te maken van sneltoetsen, omdat dat gewoon een stuk fijner en sneller werkt. Weten jullie of er een sneltoets is voor de volgende actie's?
[ afbeelding ]
Ik heb dus 3 rijen geselecteerd. Door dubbel te klikken kan ik ervoor zorgen dat ze precies breed genoeg zijn. Kan dit ook via een sneltoets?
alt + pijltje naar beneden (hier moet je alt wel ingedrukt houden)quote:Ik heb een filter gemaakt voor wat data en heb de bovenste cel geselecteerd. Kan ik nu zonder te klikken toch gemakkelijk het menutje naar voren halen?
ah, dank je!quote:Op woensdag 27 maart 2013 00:20 schreef snabbi het volgende:
[..]
Excel 2010 Nederlands: ALT R + O + M
Excel 2010 Engels: ALT H + O + I
(hier hoef je alt niet ingedrukt te houden en moet je de letters achter elkaar typen)
[..]
alt + pijltje naar beneden (hier moet je alt wel ingedrukt houden)
(control shift L is overigens het activeren en deactiveren van de auto-filter)
| 1 2 3 4 5 6 7 8 9 | start 100 200 APPEL 50 100 250 APPEL 40 x x x x 200 300 PEER 10 101 102 APPEL 30 x x x x 999 900 ANANAS 10 einde |
| 1 2 3 4 | 100 200 APPEL 50 200 300 PEER 10 101 102 APPEL 30 999 900 ANANAS 10 |
| 1 2 3 4 | 100,200,APPEL,50 200,300,PEER,10 101,102,APPEL,30 999,900,ANANAS,10 |
| 1 | Range("A1:D20").Copy |
| 1 | Range("A1:D4").Copy |
Ok eerst hier even een reactie op. Dit stuk werkt prima, maar het is mij nog niet helemaal duidelijk waarom je eerst verwijdert en daarna sorteert. Als je dit omdraait gaat het veel efficiënter!quote:Op donderdag 28 maart 2013 22:38 schreef elkravo het volgende:
Ik heb een eigenaardig probleempje:
Vanuit een bepaald blad kopieer ik via een macro bepaalde regels naar een leeg 2e blad.
de gegevens in het eerste blad zijn (dus 4 kolommen)
[ code verwijderd ]
Qua gegevens kunnen er meer regels tussen start en einde zitten op het bronblad.
Regels die er niet toe doen worden gevuld met een x in de cel, indien waarden niet van toepassing zijn.
Ik maak via een macro een selectie startend bij "start", en eindigend bij "einde"
En de gegevens zoals hierboven worden op het tweede blad vanaf cel A1 geplakt.
Vervolgens wist diezelfde macro alle cellen waar "x" in staat, en waar "start" of "einde" in staat.
Hierna sorteert de macro de gegevens.
Ik weet niet waar precies hier je probleem ligt. Sla je standaard een bestand op met 20 regels bijvoorbeeld?quote:Resultaat:
[ code verwijderd ]
Hierna is het de bedoeling dat deze gegevens naar een csv bestand worden ge-exporteerd. Ook dit doet de macro, zonder problemen.
De bedoeling is dus een csv-bestand zoals dit:
[ code verwijderd ]
MAAR nu komt het probleem:
Het aantal rijen verschilt van keer op keer. Nu zijn het er vier, soms 10, maar max 20.
De selectie van de cellen die geëxporteerd worden luidt in de macro nu als volgt:
[ code verwijderd ]
Blijkbaar blijven er onder de laatste regel die voor mij zichtbaar is, in dit voorbeeld nog 16 regels, in het "geheim" verborgen nog verborgen tekens, data (kolomscheidingen), tabs, staan.
Ik wil dus meer selectief dus de selectie van te exporteren data doen.
In bovenstaand voorbeeld moet de selectie dus eigenlijk zijn:
[ code verwijderd ]
Hoe vertel ik Excel in een Macro om alleen een selectie te doen van de regels met ECHTE DATA (geen tabs, of verborgen tekens)... en daar de range op aan te passen??
Of... kan ik zeggen alleen een range te selecteren van alle cellen met in de cel 2 of meer tekens???
Bij voorbaat dank.
Ik haal eerste te regels met x x x x eruit deze mogen niet in het uiteindelijke csv bestand komen.quote:Op donderdag 28 maart 2013 23:24 schreef snabbi het volgende:
[..]
Ok eerst hier even een reactie op. Dit stuk werkt prima, maar het is mij nog niet helemaal duidelijk waarom je eerst verwijdert en daarna sorteert. Als je dit omdraait gaat het veel efficiënter!
Het bestand dient evenveel regels te hebben als dat er dataregels zijn.quote:[..]
Ik weet niet waar precies hier je probleem ligt. Sla je standaard een bestand op met 20 regels bijvoorbeeld?
Dit laatste is wat ik dus, zoals ik hierboven schreef, doe door te verwijderen, en dan te sorteren.quote:Als je gebruik maakt van bijvoorbeeld Selection.End(xlDown).Select dan maakt het niet uit hoeveel regels er zijn (of je kunt het aantal regels bijvoorbeeld bepalen via:
Dim aantalRegels as Integer
Range("A1").select
Selection.End(xlDown).Select
aantalRegels = activecell.row
Range("A1:D" & aantalRegels).select
Dat zou je selectie moeten opleveren. (of wanneer je het met minder code wilt doen kan het ook in 1 regel:
Range("A1:D" & Selection.End(xlDown)..row).select
Uiteraard kan je ook je selectie aanpassen door de rijen die niet voldoen aan je criteria te verwijderen.
Ik bedoel eigenlijk meer dat wanneer je eerst sorteert, alle regels met een x bij elkaar staan en ze makkelijker te verwijderen zijn. Heel belangrijk is het niet.quote:Op donderdag 28 maart 2013 23:56 schreef elkravo het volgende:
[..]
Ik haal eerste te regels met x x x x eruit deze mogen niet in het uiteindelijke csv bestand komen.
Door eerst te verwijderen, en daarna te sorteren ben ik er zeker van dat alle overblijvende, en benodigde regels met data bovenaan staan voor de export.
[..]
Het bestand dient evenveel regels te hebben als dat er dataregels zijn.
In mijn voorbeeld zijn dat er 4. Het originele bestand heeft 20 regels, dus als er 16 regels zijn met "x x x x" blijven er 4 regels over.
Is er maar 1 regel met "x x x x" dan hou ik 19 regels over.
Gevolg is dus hoe meer "x x x x" regels, deste korter het te exporterende bestand moet worden.
Via dat selection end row is eigenlijk gelijk aan de functie CTRL pijltje naar beneden. Dat is dus een goede manier om de laatst beschreven cel te pakken.quote:In mijn voorbeeld van 4 regels, is gebleken (en ik weet niet precies hoe) dat er toch extra data meekomt, en er 16 witregels in het csv bestand kunnen zitten (als ik de csv met kladblok open en alles selecteer goed te zien).
Het csv bestand is dan niet goed.
[..]
Dit laatste is wat ik dus, zoals ik hierboven schreef, doe door te verwijderen, en dan te sorteren.
Alleen bij het selecteren tot de laatste data zoals je aangeeft kan het zijn dat Excel die verborgen data (nogmaals geen idee hoe het komt nog) ook ziet en die dus meeneemt.
Is het mogelijk om alleen een range te doen van cellen waar ASCII tekst instaat?
Bedankt voor het meedenken trouwens!![]()
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | 'eerst kopieren en sorteren 'definieren van variabelen Dim laatsteRegel As Integer laatsteRegel = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row 'bepalen waar de laatste regel met een getal is. Range("a1").Select While ActiveCell.SpecialCells(x1number) ActiveCell.Offset(1, 0).Select Wend 'verwijderen van onnodige gegevens onder de regel met een getal If ActiveCell.Row < laatsteRegel Then Rows(ActiveCell.Row & ":" & laatsteRegel).Delete End If 'opslaan |
| 1 2 3 4 | Columns("P").End(xlDown).Select ActiveCell.Columns("P:S").Select Selection.AutoFill Destination:=Range(Selection, Selection.Offset(1, 0)), Type:=xlFillDefault On Error Resume Next |
Dat komt vanwege je verwijzing vanuit ActiveCell.quote:Op vrijdag 29 maart 2013 13:03 schreef GoodGawd het volgende:
[ code verwijderd ]
Als ik dit doe dan selecteert hij Colum P heel netjes en gaat naar onderste ingevulde cell. Maar dan bij P:S moet ie de 3 columns ernaast dus ook selecteren P Q R S. Maar hij selecteert dan AE AF AG AH.
Oftewel hij reset zijn kolom telling zegmaar. Als ik P Q R S wil selecteren zou ik dus A B C D (A:D) moeten invullen.
Dit zou kunnen, maar dit wil ik niet want later wil ik gaan referen aan kolom A:D dus dan moet ik de m in kan op in de kolom telling.
Te volgen? Iemand tip? Waarom wordt kolom telling gereset?
| Forum Opties | |
|---|---|
| Forumhop: | |
| Hop naar: | |