Als je dit topic had doorgelezen had je gezien dat deze vraag al een keer voorbij was gekomen maar dan met een CSV functie, lees maar vanaf deze post verderquote:
quote:Op vrijdag 10 februari 2012 20:13 schreef elkravo het volgende:
Ik exporteer een deel van een Excel blad met onderstaande VBA naar een csv-file.
Gevonden op internet, en werkt goed.
Toch ben ik over een ding niet tevreden. In deze export-VBA zit ingebakken een vaste plaats op de harde schijf... in dit geval: C:\Users\Elkravo\Desktop\File.csv
Is deze opdracht te vervangen door iets waarbij ik zelf een plaats kan aanwijzen in het proces.
Deze vraag is ingegeven door het feit dat meerdere personen het sheet op eigen computer gebruiken, en dus de macro niet te specifiek een locatie moet aanwijzen.
[ code verwijderd ]
| 1 2 | bestandsnaam = ThisWorkbook.Path & "\Tijdspecificatie.xlsx" ActiveWorkbook.SaveAs Filename:=bestandsnaam, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False |
Wat doet die CreateBackup:=False?quote:Op woensdag 22 februari 2012 13:39 schreef Deetch het volgende:
verwijderer de CHDir regel maar helemaal het padnaam zit nl. al in je saveas functie verwerkt.
Eerst stop je het pad en de bestandsnaam in een variabele "bestandsnaam" en dan sla je je bestand op
[ code verwijderd ]
geen idee, deze zit er standaadr achter als je de save as dialoog opneemt.quote:
Hoe moet ik het pad en de bestandsnaam in de variabele 'bestandsnaam' doen?quote:Op woensdag 22 februari 2012 13:39 schreef Deetch het volgende:
verwijderer de CHDir regel maar helemaal het padnaam zit nl. al in je saveas functie verwerkt.
Eerst stop je het pad en de bestandsnaam in een variabele "bestandsnaam" en dan sla je je bestand op
[ code verwijderd ]
Ja ik weet niet maar als ik jouw code draai zonder het hele save gebeuren krijg ik ook een berg foutmeldingen, dus de fout zit voordat je opslaat.quote:Op woensdag 22 februari 2012 12:08 schreef crossover het volgende:
Sorry hoor, maar ik heb overal gezocht, en bij alles wat ik lees gaat het mis bij het toepassen op mijn situatie. Ik krijg allerlei foutmeldingen en moet telkens opnieuw beginnen, dus als je zegt dat ik gewoon even dit topic had moeten lezen, vind ik dat niet redelijk want dan had ik overal in deze reeks van 30 kunnen gaan zoeken. Waarschijnlijk is mijn vraag voor ervaren gebruikers een eitje. Ook bij het voorbeeld wat je hierboven aangeeft, KM, lukt het me niet om het in mijn code toe te passen.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | Sub Macro1() ' ' Macro1 Macro' ' Sneltoets: Ctrl+t' Columns("A:A").Select 'hier gaat het mis Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _ TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _ Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _ :=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _ Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1)), TrailingMinusNumbers:=True 'einde foute code Range("C3").Select Columns("A:A").EntireColumn.AutoFit Columns("C:C").EntireColumn.AutoFit Columns("D:D").EntireColumn.AutoFit Columns("G:G").EntireColumn.AutoFit Columns("H:H").EntireColumn.AutoFit End Sub |
ja je kan natuurlijk een stukje code draaien dat elke keer als het tabblad wordt geselecteerd wordt gedraaid:quote:Op woensdag 22 februari 2012 08:54 schreef Jeroen_S. het volgende:
Ik heb momenteel een bestand bestaande uit 4 pagina's.
Nu wil ik graag op elke pagina ons bedrijfslogo hebben staan, maar dan wel
natuurlijk op elke pagina op exact dezelfde positie. Kan ik dat ergens instellen?
Bij Powerpoint kun je bijvoorbeeld een logo plakken en dan plakt ie hem steeds op dezelfde positie maar bij Excel heb ik dat nog niet gevonden!
Who can help me?
Cheers,
| 1 2 3 4 | Private Sub Worksheet_Activate() ActiveSheet.Shapes("Picture 1").Left = 1 ActiveSheet.Shapes("Picture 1").Top = 1 End Sub |
Heb jij code om een gerunde macro te undo-en? Die wil ik wel!!!quote:Op woensdag 22 februari 2012 19:42 schreef KritischeMassa het volgende:
[..]
ja je kan natuurlijk een stukje code draaien dat elke keer als het tabblad wordt geselecteerd wordt gedraaid:
deze code zet het plaatje netjes in de linkerbovenhoek
[ code verwijderd ]
Je kan ook de code draaien bij openen van de worksheet en zo alle bladen langslopen
Het voordeel daarvan is dat niet je undostack continu leeg is (elke keer als je een stukje vbs code draait is je undostack leeg. Ik heb wel code om daar weer wat mee te doen maar dta voert wat ver in dit kader...
in plaats van left en top kun je ook wat aanklooien met topleftcell...
Ik heb een app waarmee ik mijn gewerkte uren bijhoud. Dat wordt geexporteerd als .csv, ik wil dat bestand opslaan als .xlx met een andere naam en daarbij de datum/tijd. Ik heb 'm zo opgenomen, en dat stukje werkte telkens eigenlijk goed.quote:Op woensdag 22 februari 2012 19:26 schreef KritischeMassa het volgende:
[..]
Ja ik weet niet maar als ik jouw code draai zonder het hele save gebeuren krijg ik ook een berg foutmeldingen, dus de fout zit voordat je opslaat.
Het is sowieso een beetje een wazige macro die je daar hebt, heb je die zo opgenomen?
Wat wil je dat hij doet?
Jouw probleem zit hem niet in het opslaan iig, de code die we je daarvoor hebben aangegeven klopt gewoon en werkt in alle gevallen (test het maar znder de code die ik hieronder quote en die foutmeldingen geeft.
Sowieso, die hele record functie van excel is bagger
[ code verwijderd ]
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | Sub Macro1() ' ' Macro1 Macro ' ' Sneltoets: Ctrl+t ' Columns("A:A").Select Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _ TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _ Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _ :=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _ Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1)), TrailingMinusNumbers:=True Columns("A:A").EntireColumn.AutoFit Columns("G:G").EntireColumn.AutoFit Columns("H:H").EntireColumn.AutoFit Columns("J:J").EntireColumn.AutoFit bestandsnaam = ThisWorkbook.Path & "/Tijdspecificatie" & Range("G2").Value & ".xls" ActiveWorkbook.SaveAs Filename:=bestandsnaam, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False End Sub |
"/Tijdspecificatie"quote:Op donderdag 23 februari 2012 14:59 schreef crossover het volgende:
Tot nu werkt alles prima, ook nadat ik (helemaal zelf!) een functie heb toegevoegd in de bestandsnaam. Echter, wat ik in eerste instantie wilde, werkt nog niet. Het bestand wordt opgeslagen in de map XLSTART (C:\Users\crossover\AppData\Roaming\Microsoft\Excel\XLSTART).
M'n code is nu:
[ code verwijderd ]
Ook zonder mijn toevoeging werkt het niet... nog tips?
Geen verschil..quote:Op donderdag 23 februari 2012 15:25 schreef KritischeMassa het volgende:
[..]
"/Tijdspecificatie"
"\Tijdspecificatie" een idee?
Gewoon een naam. Dus enkel letters..quote:Op donderdag 23 februari 2012 18:56 schreef KritischeMassa het volgende:
Wat staat er in Range("G2") ? als dit een tijd is gaat het mis he, je kan geen bestandsnamen met : erin maken
Ja maar dan is die 2e geen 300% maar 200%. 6 is immers 4 meer dan 2 dus 200% meer.quote:Op donderdag 23 februari 2012 18:57 schreef E-lientje het volgende:
@Deetch, zo liep ik ook te rommelen, maar dat is het dus niet.
Als iets 40% is, is het 60% minder dan 100%, dus is het -60%. Dat is ook de bedoeling van de "-".
150% = +50%
A=40% B=120% C=-66,67% (en niet -33,33%). Snappie?
Maar hoe zet ik dat in een formule?
voeg na het definieren van je bestandnaam de volgende regel code toe:quote:Op donderdag 23 februari 2012 19:01 schreef crossover het volgende:
[..]
Gewoon een naam. Dus enkel letters..
| 1 2 3 | A B C 3 1 Dit moet dus 2 worden 2 2 Dit mag dus 1 of 3 worden |
Je kan via een macro iets doen als:quote:Op zaterdag 25 februari 2012 19:40 schreef GuitarJJ het volgende:
Weet iemand of je uitzonderingen kan toevoegen aan de aselecttussen-functie in Excel?
Situatie:
In cel A1 wordt een random nummer tussen de 1 en 3 geproduceerd.
In cel B1 wordt ook een random nummer tussen de 1 en 3 geproduceerd. Deze kan en mag hetzelfde zijn als die in cel A1.
In cel C1 moet ook een random nummer tussen de 1 en 3 geproduceerd worden. Echter, deze mag niet gelijk zijn aan de nummers in A1 en B1.
[ code verwijderd ]
edit: inmiddels al een oplossing gevonden.
Bedankt! Ik heb het alleen al op de volgende manier opgelost.quote:Op zondag 26 februari 2012 11:37 schreef McGilles het volgende:
[..]
Je kan via een macro iets doen als:
Sub test()
Do
Dim minNum As Integer
minNum = 1
Dim maxNum As Integer
maxNum = 8
Dim xrand As Integer
Dim i As Integer
For i = minNum To maxNum
xrand = Int(Rnd() * maxNum) + minNum
Cells(3, 2 + i).Value = xrand
Next i
Loop Until Cells(1, 3).Value = "True"
End Sub
Dan in cel C1 formule zetten die true weergeeft wanneer de waarden anders zijn.
Ik had er eerst één grote formule van gemaakt, maar die bevatte te veel geneste niveaus.quote:=(ALS(((B9=1)*EN(C9=1));ASELECTTUSSEN(2;3);N9))
=(ALS(((B9=1)*EN(C9=2));3;O9))
=(ALS(((B9=1)*EN(C9=3));2;P9))
=(ALS(((B9=2)*EN(C9=1));3;Q9))
=(ALS(((B9=2)*EN(C9=2));(ALS((ASELECTTUSSEN(1;2)=2);3;1));R9))
=(ALS(((B9=2)*EN(C9=3));1;S9))
=(ALS(((B9=3)*EN(C9=1));2;T9))
=(ALS(((B9=3)*EN(C9=2));1;U9))
=(ALS(((B9=3)*EN(C9=3));ASELECTTUSSEN(1;2);M9))
| Forum Opties | |
|---|---|
| Forumhop: | |
| Hop naar: | |