Nee. Wen er maar aanquote:Op dinsdag 7 februari 2012 11:31 schreef Setting_Sun het volgende:
Excel 2010 de look van Excel 2007 geven, kan dat?
gewoon even eraan wennen.quote:Op dinsdag 7 februari 2012 11:31 schreef Setting_Sun het volgende:
Excel 2010 de look van Excel 2007 geven, kan dat?
Werkte de tip van Wokkel?quote:Op dinsdag 7 februari 2012 08:52 schreef Frixel het volgende:
[..]
Inderdaad, als A1 blad 1 gelijk is aan A23 blad 2 dan moet ook B1 met B23 worden vergeleken en zo verder want er kan een "afwijking" in de volgende kolommen voorkomen.
dat maakt het zo ingewikkeld vrees ik.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | Sub MergeFiles() If WB_1 = "" Then Exit Sub If WB_2 = "" Then Exit Sub MOA Workbooks.Open (WB_1) WB_1_Name = ActiveWorkbook.Name WB_1_LastCell = Workbooks(WB_1_Name).Sheets(1).Cells.SpecialCells(xlCellTypeLastCell).Row Workbooks.Open (WB_2) WB_2_Name = ActiveWorkbook.Name WB_2_LastCell = Workbooks(WB_2_Name).Sheets(1).Cells.SpecialCells(xlCellTypeLastCell).Row NewRow = WB_1_LastCell + 1 'regel i uit de slave file moet vergeleken worden met iedere regel j uit de masterfile 'als regel i voorkomt in de masterfile dan doet de routine niets 'als regel i niet voorkomt in de masterfile zet de routine regel i onder de masterfile For i = 1 To WB_2_LastCell Application.StatusBar = CInt(i / WB_2_LastCell * 100) & "% klaar" SlaveStr = "" MasterStr = "" UniqueRow = True For KolTel = 1 To 8 SlaveStr = SlaveStr & Workbooks(WB_2_Name).Sheets(1).Cells(i, KolTel) Next For j = 1 To WB_1_LastCell MasterStr = "" For KolTel = 1 To 8 MasterStr = MasterStr & Workbooks(WB_1_Name).Sheets(1).Cells(j, KolTel) Next If SlaveStr = MasterStr Then UniqueRow = False End If Next If UniqueRow = True Then For KolTel = 1 To 8 Workbooks(WB_1_Name).Sheets(1).Cells(NewRow, KolTel) = Workbooks(WB_2_Name).Sheets(1).Cells(i, KolTel) Next NewRow = NewRow + 1 End If Next Workbooks(WB_2_Name).Close False MOU End Sub |
Opgeslagen als .xlsm?quote:Op dinsdag 7 februari 2012 23:34 schreef elkravo het volgende:
Ik heb macro's verwijderd uit mijn spreadsheet.
Echter bij opstarten meld Excel "deze sheet bevat macro's"...
Wat ben ik vergeten?
Heb nog een oudere Excel 2003.... dus nog gewoon XLSquote:
Dan zou het opgeslagen kunnen zijn als .xlm, maar ik zie dat t al opgelost isquote:Op woensdag 8 februari 2012 18:28 schreef elkravo het volgende:
[..]
Heb nog een oudere Excel 2003.... dus nog gewoon XLS
Hoe kom ik van die macro melding af als ik geen macro in de sheet meen te hebben?
quote:Op donderdag 9 februari 2012 12:11 schreef actuarisje het volgende:
Hoihoi,
Ik heb een vraag over het kopieren van een tabblad. Ik heb een sheet met daarin een overzicht van een aantal medewerkers en een aantal 'template'-sheets voor elk functieprofiel. Ik wil nu met een druk op de knop voor alle medewerkers in de lijst een eigen tabblad aanmaken, gebaseerd op hun functieprofiel. Er wordt dus gekeken naar welk functieprofiel in de lijst staat en aan de hand daarvan wordt bepaald van welke 'template'-sheet er een kopie moet worden gemaakt.
Ik heb beovenstaande functionaliteit gebouwd mbv VBA en op zich gaat dat goed. Voor elke medewerker wordt een juist tabblad aangemaakt. Ik zi nu alleen dat het mis gaat bij het printen van deze tabbladen. Bij het kopieren van de template-sheet wordt wel netjes de info uit de sheet meegenomen (tekst, kolombreedtes, gekleurde cellen e.d), maar niet de pagina-instellingen (schaal, marges kop/voettekst e.d).
Mijn vraag is dus: Hoe kan ik mbv VBA een sheet zodanig kopieren dat ook de pagina-instellingen worden meegenomen?
Wat ik nu doe is eerste een nieuw, leeg tabblad aanmaken (Worksheets.Add) en dan de template daarheen copy-pasten. En daarbij gaat het blijkbaar mis, want de sheet krijgt dan de pagina-instellingen van een nieuwe, lege sheet en niet die van de kopieer-bron...
| 1 | sheet.Copy([before], [after]); |
Ken je de functie vert.zoeken()?quote:Op donderdag 9 februari 2012 17:08 schreef Barry87 het volgende:
Ik heb het volgende 'probleem':
In kolom C heb ik de namen van producten staan en in kolom H staat bij een gedeelte van deze producten de prijs. Bijvoorbeeld in cel C2 staat het product 'Measuring jug' in cel H2 staat de prijs van 4,60. Dit is prima.
Het probleem is echter dat in bijvoorbeeld C211 ook het product 'Measuring jug' staat maar de cel H211 is leeg.
Kan ik het niet zo instellen dat bij het invullen van 'Measuring jug' in cel C211 de prijs van 4,60 automatisch in cel H211 komt?
Hopelijk kan iemand mij helpen.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | Sub export() ' ' export Macro Range("A1:E50").Select Selection.Copy Workbooks.Add ActiveSheet.Paste ActiveWorkbook.SaveAs Filename:= _ "C:\Users\Elkravo\Desktop\File.csv" _ , FileFormat:=xlCSV, CreateBackup:=False Application.DisplayAlerts = False ActiveWorkbook.Close Application.DisplayAlerts = True End Sub |
| 1 2 3 | fileSaveName = Application.GetSaveAsFilename( _ fileFilter:="csv Files (*.csv), *.csv") ActiveWorkbook.SaveAs (fileSaveName) |
Hoi KM, alvast bedankt, maar ik krijg het niet helemaal voor elkaar.quote:Op zaterdag 11 februari 2012 07:25 schreef KritischeMassa het volgende:
saveas = stringwaarde
Stringwaarde in simpel userform vragen
Je kan ook naar de directory browsen en de stringwaarde opbouwen als
stringwaarde = newdir & "Filename"
Of gewoon gebruiken wat er al is:
[ code verwijderd ]
Je kan eventueel ook gebruik maken van het pad ThisWorkbook.path & "\" & "NAAM"
Als je echter een Add-In gebruikt voor de code verwijst ThisWorkbook naar het pad van de Add-In en kun je beter ActiveWorkbook.path gebruiken
| 1 2 3 4 5 6 7 8 9 10 11 | Sub export() ' 'export Macro Range("A1:E50").Copy Workbooks.Add ActiveSheet.Paste fileSaveName = Application.GetSaveAsFilename(fileFilter:="csv Files (*.csv), *.csv") ActiveWorkbook.SaveAs (fileSaveName) Application.DisplayAlerts = False ActiveWorkbook.Close Application.DisplayAlerts = True End Sub |
| 1 2 3 4 5 6 7 8 9 10 11 12 | Sub export() ' 'export Macro Range("A1:E50").Copy Workbooks.Add ActiveSheet.Paste fileSaveName = Application.GetSaveAsFilename(fileFilter:="csv Files (*.csv), *.csv") If fileSaveName = False Then Exit Sub ActiveWorkbook.SaveAs (fileSaveName) Application.DisplayAlerts = False ActiveWorkbook.Close Application.DisplayAlerts = True End Sub |
Hoi KM,quote:Op zaterdag 11 februari 2012 13:57 schreef KritischeMassa het volgende:
[ code verwijderd ]
Als er geen bestandsnaam wordt gesuggereerd en je geeft niets op krijg je idd FALSE terug
dat kun je zo ondervangen:
[ code verwijderd ]
Wat gek, ik heb het getest in een willekruige sheet en daar werkte het gewoonquote:Op zaterdag 11 februari 2012 15:06 schreef elkravo het volgende:
[..]
Hoi KM,
Heb de tweede gedaan...
Hij vraagt om een naam, geeft CSV type aan. Echter, het resultaat is FALSE.xls ipv mijnnaam.csv
FALSE.xls is ook niet in csv format (te zien als ik deze open met kladblok).
| 1 2 3 | If fileSaveName = False Then Exit Sub msgbox filesavename ActiveWorkbook.SaveAs (fileSaveName) |
Hoi, ik zie geen verschil::quote:Op zaterdag 11 februari 2012 17:04 schreef KritischeMassa het volgende:
[..]
Wat gek, ik heb het getest in een willekruige sheet en daar werkte het gewoon
wat geeft een msgbox met de string erin?
dus zo:
[ code verwijderd ]
| 1 | , FileFormat:=xlCSV, |
Je had een messagebox moeten krijgen met het pad en de filenaamquote:Op zaterdag 11 februari 2012 18:05 schreef elkravo het volgende:
[..]
Hoi, ik zie geen verschil::
Wat nu gebeurt is...
Er wordt een nieuw excel-map gemaakt, en ik krijg deze pop-up:
[ afbeelding ]
Vervolgens zet ik er een nieuwe naam in... maar wordt het blad toch als FALSE.xls bewaard.
In de oorspronkelijke code staat o.a.:
[ code verwijderd ]
mist dit op een of andere manier niet?
Ok, de vba uit jouw file gebruikt... de file creatie werkt nu wel. Dank.quote:Op zaterdag 11 februari 2012 19:49 schreef KritischeMassa het volgende:
[..]
Je had een messagebox moeten krijgen met het pad en de filenaam
Zet die hele code nu eens in een nieuwe sheet en test het vanaf daar (opgeslagen en wel)
En nee , je geeft het filetype immers al op in het dialoog
hier de sheet die ik heb
In de bovenstaande sheet draai de macro "export"
| 1 2 3 4 5 | 1;2;3;4;5 q;q;q;q;q w;w;w;w;w 2;3;4;5;6 etc |
Ok, we komen verder iigquote:Op zaterdag 11 februari 2012 20:13 schreef elkravo het volgende:
[..]
Ok, de vba uit jouw file gebruikt... de file creatie werkt nu wel. Dank.
Alleen lijkt de format van de geëxporteerde file "intern" niet "comma separated".
Als ik de file open in kladblok verwacht ik (uit jouw file)
[ code verwijderd ]
Maar de uitkomst van de export maakt dit niet, bij openen in kladblok zie ik allerlei rare tekens, dus ik denk dat het toch nog op een of andere manier intern nog xls-format is of zo...
| 1 | ActiveWorkbook.SaveAs Filename:=filesavename, FileFormat:=xlCSV, CreateBackup:=False |
That was the missing piece!quote:Op zaterdag 11 februari 2012 20:20 schreef KritischeMassa het volgende:
[..]
Ok, we komen verder iig
dus het is geen csv als gehoopt...
hmmm
[ code verwijderd ]
en zo?
Ik was met opzet vrij cryptisch in mijn antwoorden, je was al zo lekker op wegquote:Op zaterdag 11 februari 2012 20:28 schreef elkravo het volgende:
[..]
That was the missing piece!Hij doet 't!
KM ik ben je enorm dankbaar!![]()
En ik heb weer nieuwe dingen geleerd ook zo, waarvoor ook dank!
Hah nee dat was me niet opgevallen. Maar goed als ik die codes zie snap ik een en ander, en veel ook weer niet. Weet niet waar mensen dit soort spul leren, maar dit moet je dus gewoon leren, en lezen, het is niet altijd redeneerbaar. Lijkt me bij computertaal in het algemeen het geval.quote:Op zaterdag 11 februari 2012 20:31 schreef KritischeMassa het volgende:
[..]
Ik was met opzet vrij cryptisch in mijn antwoorden, je was al zo lekker op weg
Heb je gezien dat ik je "select" actie heb weggehaald in jouw code?
Als je gebruik maakt van macro opnemen zitten er een hoop select acties in, die zijn helemaal niet nodig en laten het scherm flikkeren. Je kan vrij direct ranges aanwijzen en manipuleren namelijk.
Basic is in al zijn vormen een bitchquote:Op zaterdag 11 februari 2012 20:57 schreef elkravo het volgende:
[..]
Hah nee dat was me niet opgevallen. Maar goed als ik die codes zie snap ik een en ander, en veel ook weer niet. Weet niet waar mensen dit soort spul leren, maar dit moet je dus gewoon leren, en lezen, het is niet altijd redeneerbaar. Lijkt me bij computertaal in het algemeen het geval.
| 1 | Range("I87:M138").Copy |
| 1 | Range("I86:M137").Copy |
| 1 | Range("I87:M137").Copy |
Ik vind jouw beschreven optie goed, ik wil dat een gebruiker niets hoeft te doen. En die regels met start en einde gaan niet weg.quote:Op zondag 12 februari 2012 19:34 schreef KritischeMassa het volgende:
Ja hoor
Je kan range en cells combineren
Cells kun je tellen -> Cells(i,j)
Door nu door de kolom heen te lopen kun je het start en einde van de range detecteren
pseudocode
For i = 1 to 32000
if cells(i,1)= "start" then
SelStart = i
end if
if cells(i,1) = "einde" then
SelEnd = i
exit for
end if
next
Nu weet je het begin en het eind
nu kun je de range specificeren
range(cells(StartSel,1),cells(EndSel,8))
de 1 en de 8 slaan op de kolomnummers
edit:
Dit gaat natuurlijk grandioos de mist in als je de regel met start of einde verwijderd
kun je niet beter de gebruiker de range laten selecteren met inputbox type 8? (zie post #4 in dit topic voor een voorbeeld)
haha dat was grappig hequote:Op zondag 12 februari 2012 20:08 schreef elkravo het volgende:
(ook als ik over StartSel en EndSel gebruik en niet SelStart hier en SelEnd)
quote:Op maandag 13 februari 2012 17:02 schreef mrrrtijn1975 het volgende:
Hi, ik zit met een uitdaging in Excel.
Stel ik wil dagelijks bijhouden in welk merk auto ik rijd en voer dat als volgt in :
[ afbeelding ]
Met de knop ' toevoegen aan lijst' wil ik dat een lijst wordt aangevuld, dat ziet er dan zo uit :
[ afbeelding ]
Hoe moet ik die knop programmeren? Is daar een formule voor, of moet ik met VB gaan werken, of kan ik eventueel met een macro werken? En hoe doe ik dat?
eeuwige roem voor degene die me hiermee kan helpen!
thx
| 1 2 3 4 5 6 7 8 9 10 11 12 13 | For i = 1 To 3200 'Kijken welke regel leeg is 'Uitgaande van de datum kolom If ActiveWorkbook.ActiveSheet.Cells(i, 1) = "" Then Exit For Next 'elke ingevoerde waarde in het formulier wordt in de sheet geplaatst ActiveWorkbook.ActiveSheet.Cells(i, 1) = DTPicker1.Value ActiveWorkbook.ActiveSheet.Cells(i, 2) = TextBox1.Value ActiveWorkbook.ActiveSheet.Cells(i, 3) = TextBox2.Value 'userform sluiten Unload Me |
Aantal.als een idee?quote:Op maandag 13 februari 2012 19:51 schreef teamlead het volgende:
iemand een idee?
Ik heb een sheet met 52 tabbladen (voor iedere week 1).
In zo'n tabblad staat in kolom A de naam van een medewerker en in kolom B tot en met L komt wel of geen "x" om bij te houden of iemand wel of niet in die week gecoacht is.
Nu wil ik een "overzichtspagina" hebben, waar ik in kolom A de naam van de medewerker heb staan en in kolom B (week 1) tot en met BA (week 52) het aantal "x" per medewerker voor de betreffende week.
Een aantal.arg per tabblad zou kunnen... als we iedere week dezelfde medewerkers zouden hebben. En dat is niet per definitie zo
Iemand een idee hoe ik een formule of macro kan gebruiken die kijkt naar de naam van de medewerker en dan per tabblad het aantal x-jes van die medewerker telt
| 1 2 3 | For i kan op cellen slaan maar ook op sheets (sheet(i)) Dan tellen in die sheets For j bijvoorbeeld Sheet(i).cells(j,1) Dan tellen in kolomen for k bijvoorbeeld sheet(i),cells(j,k) |
Google en KM zullen je helpenquote:Op maandag 13 februari 2012 20:02 schreef mrrrtijn1975 het volgende:
Hi Kritische massa, ik had nog niet aan deze oplossing gedacht om te werken met een user form. Ik moet me toch eens bezig gaan houden met VB, voor de eerste keer programmeren in 15 jaar. Het zal niet meevallen. ;-) thx!
met aantal.als loop ik er tegenaan dat ik óf de naam als criterium moet hanteren of de ingevulde "x" .quote:
macro knutselen dusquote:Macro kan ook
In dit topic zijn een aantal voorbeelden van code en tellers die je opweg kunnen helpen
[ code verwijderd ]
Probeer eens wat zou ik zeggen en als het echt niet lukt zie ik je hier vanzelf weer
Combinatie van vert.zoeken() en aantal.als()quote:Op maandag 13 februari 2012 19:51 schreef teamlead het volgende:
iemand een idee?
Ik heb een sheet met 52 tabbladen (voor iedere week 1).
In zo'n tabblad staat in kolom A de naam van een medewerker en in kolom B tot en met L komt wel of geen "x" om bij te houden of iemand wel of niet in die week gecoacht is.
Nu wil ik een "overzichtspagina" hebben, waar ik in kolom A de naam van de medewerker heb staan en in kolom B (week 1) tot en met BA (week 52) het aantal "x" per medewerker voor de betreffende week.
Een aantal.arg per tabblad zou kunnen... als we iedere week dezelfde medewerkers zouden hebben. En dat is niet per definitie zo
Iemand een idee hoe ik een formule of macro kan gebruiken die kijkt naar de naam van de medewerker en dan per tabblad het aantal x-jes van die medewerker telt
Kan ook wel met formule: =INT(A1)&":"&60*(A1-INT(A1))quote:Op dinsdag 14 februari 2012 16:40 schreef Puckzzz het volgende:
Ik heb 'm al
formule gewoon ='NL Maarssen (Stichtse Vecht)'!G3/24
en dan de cel eigenschap [uu]:mm
ik dacht ik deel 'm ff
Dat is wel heel ingewikkeld vind je niet?quote:Op dinsdag 14 februari 2012 18:51 schreef McGilles het volgende:
[..]
Kan ook wel met formule: =INT(A1)&":"&60*(A1-INT(A1))
nee, dat was toch iets anders. Dat zou de 24 uur niet overschrijden.quote:Op dinsdag 14 februari 2012 19:27 schreef KritischeMassa het volgende:
[..]
Dat is wel heel ingewikkeld vind je niet?
Wel grappig dat deze vraag voor de tweede keer van dezelfde user in dit deel voorkomt (zie post #29).
Of ging het nu om de opmaak >24 uur in [uu]?
Doe eens 63.25 uur delen door 24 en dan opmaken als dd-mm-jjjj uu:mmquote:Op dinsdag 14 februari 2012 19:43 schreef Puckzzz het volgende:
[..]
nee, dat was toch iets anders. Dat zou de 24 uur niet overschrijden.
Je kan de veldopmaak veranderen naar datum, werkt dat met deze opmaak? Anders de punten vervangen door "-"quote:Op donderdag 16 februari 2012 09:00 schreef M_Schtoppel het volgende:
Beste Excel-specialisten,
Ik werk met Excel 2010 en ik zit met het volgende. Ik heb een veld dat er als volgt uit ziet:
01.01.2012 14:45:23
Dus het tijdstip en dag dat iets gebeurd is. Zo heb ik ruim 100.000 van dat soort velden onder elkaar.
De categorie staat nu op standaard. Hoe kan ik van zo'n veld een datumveld maken zonder tijd? Bestaat er een functie die die tijd eraf kan trimmen?
Hartelijk dank alvast!
als je het format naar "nummer" veranderd wordt het dan een getal?quote:Op donderdag 16 februari 2012 09:00 schreef M_Schtoppel het volgende:
Beste Excel-specialisten,
Ik werk met Excel 2010 en ik zit met het volgende. Ik heb een veld dat er als volgt uit ziet:
01.01.2012 14:45:23
Dus het tijdstip en dag dat iets gebeurd is. Zo heb ik ruim 100.000 van dat soort velden onder elkaar.
De categorie staat nu op standaard. Hoe kan ik van zo'n veld een datumveld maken zonder tijd? Bestaat er een functie die die tijd eraf kan trimmen?
Hartelijk dank alvast!
Het is ook van de ene kant een makkelijk functie maar er zitten nog wat retricties aan wat sommige mensen zich niet realiseren.quote:Op woensdag 15 februari 2012 12:27 schreef DaFan het volgende:
Typisch hoeveel vragen er zijn over VLOOKUP
dan is het dus een tekst en kun je idd mijn formule gebruiken.quote:Op donderdag 16 februari 2012 09:55 schreef M_Schtoppel het volgende:
Hallo mensen, nee, als ik de categorie op getal zet, verandert er niets, ook visueel niet.
En de categorie op datum zetten laat ook niets anders zien. Categorie aangepast heb ik ook geprobeerd maar ook daar geen sjoegem.
Ik kom deze datumnotatie vaak tegen in logfiles (durag/sick). Vervangen zoals ik aangaf zet het ook om naar datum/tijd.quote:Op donderdag 16 februari 2012 12:59 schreef Deetch het volgende:
[..]
dan is het dus een tekst en kun je idd mijn formule gebruiken.
Een handige tip ten aanzien van datums: Een datum is in excel gewoon een getal waarbij het cijfers achter de komma het deel van een dag is. Dus 12:00 is 0.5.
Als je data dus echt als data hebt staan kun je deze gewoon van elkaar aftrekken en afronden etc.
klopt maar dan moet je dus elke keer je ruwe data aanpassen terwijl je op deze manier een formule hebt die met je ruwe data gewoon aan de slag gaat.quote:Op vrijdag 17 februari 2012 07:16 schreef M_Schtoppel het volgende:
KritischeMassa heeft inderdaad gelijk. Zoeken en vervangen werkt prima! Daarna met control 1 de categorie op datum zetten en je hebt een normaal datumveld. Wel moet ik even testen of dit echt goed werkt want ik moet er draaitabellen van maken waar voor mijn werk financiele dingen aanhangen.
Bedankt!
Ach ik heb dat soort dingen in een importmacro gestopt, je kan er namelijk meteen integers vanmaken )hele dagen.quote:Op vrijdag 17 februari 2012 08:01 schreef Deetch het volgende:
[..]
klopt maar dan moet je dus elke keer je ruwe data aanpassen terwijl je op deze manier een formule hebt die met je ruwe data gewoon aan de slag gaat.
Verder verdwijnt het getal achter de komma niet als je van een datum tijd notatie alleen de datum laat zien via format. Dit kan vervelend zijn bij vlookup functies en misschien ook wel met draiabellen.
=ALS(E18="Boston";B26;ALS(F18="Ja";B27;B28)).quote:Op vrijdag 17 februari 2012 17:15 schreef OudeBok het volgende:
Ik zit met een probleempje. Ik wil twee ALS functies nesten, maar het lukt niet.
Ik heb nu dit staan : =ALS(E18="Boston";B26;B28;ALS(F18="Ja";B27;)).
Excel geeft dan de melding dat ik teveel argumenten heb gebruikt. Hoe los ik dit op ?
Aan de ene kant wel, maar aan de andere kant, heb zelf wiskunde gestudeerd en heb niks met programmeren dus over het algemeen schud ik 9 van de 10 keer binnen een minuut wel een wiskundige oplossing uit mijn mouw, neemt niet weg dat het soms omslachtig is en soms weer enorm handig en efficientquote:Op dinsdag 14 februari 2012 19:27 schreef KritischeMassa het volgende:
[..]
Dat is wel heel ingewikkeld vind je niet?
Wel grappig dat deze vraag voor de tweede keer van dezelfde user in dit deel voorkomt (zie post #29).
Of ging het nu om de opmaak >24 uur in [uu]?
| Forum Opties | |
|---|---|
| Forumhop: | |
| Hop naar: | |