abonnement Unibet Coolblue Bitvavo
pi_107869381
quote:
0s.gif 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?
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"

[ Bericht 7% gewijzigd door #ANONIEM op 11-02-2012 19:52:05 ]
pi_107870229
quote:
3s.gif 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"
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)

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

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...
pi_107870463
quote:
0s.gif 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...
Ok, we komen verder iig ;)

dus het is geen csv als gehoopt...

hmmm

1    ActiveWorkbook.SaveAs Filename:=filesavename, FileFormat:=xlCSV, CreateBackup:=False

en zo?
pi_107870755
quote:
3s.gif 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?
That was the missing piece! *O* Hij doet 't!

KM ik ben je enorm dankbaar! ^O^

En ik heb weer nieuwe dingen geleerd ook zo, waarvoor ook dank!
pi_107870907
quote:
14s.gif Op zaterdag 11 februari 2012 20:28 schreef elkravo het volgende:

[..]

That was the missing piece! *O* Hij doet 't!

KM ik ben je enorm dankbaar! ^O^

En ik heb weer nieuwe dingen geleerd ook zo, waarvoor ook dank!
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.

:)
pi_107872010
quote:
3s.gif 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.

:)
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.
pi_107872144
quote:
0s.gif 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.
Basic is in al zijn vormen een bitch ;)

Leer C en vandaar uit andere talen, dan snap je wat meer en kun je wat meer apparatuur programmeren (ik ben vrij beroemd in de casio rekenmachine cultuur, ik heb zelfs simcity, pacman en pool geport naar de casio grafische calculator (nerd ;( ))
pi_107900723
yep klinkt nerdy ;) ... maar ieder zijn ding :P ...zolang je er maar plezier in hebt!

Nog even een andere vraag:

In een macro heb ik deze selectie (zie hoe ik geleerd heb zonder te selecten :P )

1Range("I87:M138").Copy

In deze range staat dus een tabel te kopieren.

Echter... het kan zijn dat door ergens boven in de sheet een rij te verwijderen dat de macro dus niet meedenkt dat het dan
1Range("I86:M137").Copy
moet worden

OF

Het kan zijn dat er een rij uit de range wordt verwijderd en dat de macro dus niet meedenkt dat het dan
1Range("I87:M137").Copy
moet worden.

Ik denk dat een manier moet zijn om dit te ondervangen door voor de eerste cel , en na de laatste cel een markeringspunt (een unieke term "SelecteerStart" en "SelecteerEinde") te zetten, en de macro dus tussen deze twee markeringspunten te selecteren.

Geen idee hoe dat dan weer moet... idee?
pi_107902359
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)

[ Bericht 3% gewijzigd door #ANONIEM op 12-02-2012 19:38:58 ]
pi_107903698
quote:
3s.gif 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)
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.

Echter... ik mis een bruggetje...hoe ik van

range(cells(StartSel,1),cells(EndSel,8)) ....naar het kopieren van deze range kom. '. copy' erachter zetten werkt niet.




edit: ik blijf een compileerfout krijgen op:

Range(Cells(StartSel, 1), Cells(EndSel, 9))

(ook als ik over StartSel en EndSel gebruik en niet SelStart hier en SelEnd ;) )

[ Bericht 5% gewijzigd door elkravo op 12-02-2012 20:29:52 ]
pi_107907867
^^^

Ben er zelf uitgekomen... en het werkt.... moest me even suf googlen ;-)

Maar bedankt voor de voorzet KM!
pi_107919790
quote:
0s.gif 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 ;) )
haha dat was grappig he ;( (gebeurt me regelmatig, en dan zoek ik me suf wat er nou mis is ;(

En ja ik moet eigenlijk de code eerst testen in excel want ik weet de syntax altijd ongeveer een beetje

maar ik had het druk gisteravond ;) en zelf uitvinden is tig keer leerzaam dan overtypen

vandaar de disclaimer "pseudocode"

Edit:

Om grappen als hierboven te voorkomen kun je "option Explicit" boven je code zetten (eerste regel)

Dit dwingt je om elke Variabel te declareren (dus ook teller i etc)

Als een variabel niet is gedeclareerd stopt de code daar

Zo voorkom je dat een typefout door VBA wordt geïnterpreteerd als een nieuwe variabel

[ Bericht 13% gewijzigd door #ANONIEM op 13-02-2012 06:34:21 ]
pi_107941032
quote:
0s.gif 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
pi_107941267
Een macro is VBA :P

En als je met een knop wil werken zit je vast aan VBA

Ik zou het met een userform oplossen denk ik, al snap ik de vraag niet helemaal

Maak een userform met drie tekstvakken

zet hiervoor drie labels:

Datum
Merk
Kleur

Het tekstvak datum kun je zelfs als "datepicker"opmaken ,maar dan moet je dat extra besturingselement wel in VBA toevoegen...

weet je, ik voeg zometeen een sheet toe die doet wat je wil, want dit gaat me teveel typwerk kosten en ik vermoed dat je geen idee hebt waar ik het over heb, niet onaardig bedoeld ;)
pi_107941847
De sheet

Er zit een userform in die opgeroepen wordt via de knop in de sheet

In het userform een datepicker voor de datum, twee tekstvakken en twee knoppen (annuleer en opslaan)

Achter de knop opslaan zit de volgende code

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

Als je wil dat er niets wordt opgeslagen als het merk of de kleur niet is ingevevuld moet je zelf de code aanpassen

Iets met If textbox1="" then exit sub of zoiets ;)

Ik daag je uit om de code aan te passen, zoals je waarschijnlijk snapt :P...
pi_107941917
@kritische massa : ik ga het proberen! Ik werk veel met macro's maar voorkom altijd net dat ik zelf code moet gaan typen. ;-) Thx!
  maandag 13 februari 2012 @ 19:51:34 #117
100297 teamlead
Nu met Napoleon complex
pi_107941945
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 :?
If you wish to be a success in the world, promise everything, deliver nothing.
Nothing is more difficult, and therefore more precious, than to be able to decide.
Victory belongs to the most persevering
pi_107942222
quote:
5s.gif 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 :?
Aantal.als een idee?

Macro kan ook

In dit topic zijn een aantal voorbeelden van code en tellers die je opweg kunnen helpen
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)
Probeer eens wat zou ik zeggen en als het echt niet lukt zie ik je hier vanzelf weer ;)

[ Bericht 14% gewijzigd door #ANONIEM op 13-02-2012 19:57:24 ]
pi_107942524
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!
pi_107942606
quote:
0s.gif 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!
Google en KM zullen je helpen ;)
  maandag 13 februari 2012 @ 20:12:53 #121
100297 teamlead
Nu met Napoleon complex
pi_107943112
quote:
3s.gif Op maandag 13 februari 2012 19:56 schreef KritischeMassa het volgende:

[..]

Aantal.als een idee?
met aantal.als loop ik er tegenaan dat ik óf de naam als criterium moet hanteren of de ingevulde "x" .
quote:
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 ;)
macro knutselen dus :)
If you wish to be a success in the world, promise everything, deliver nothing.
Nothing is more difficult, and therefore more precious, than to be able to decide.
Victory belongs to the most persevering
pi_107949954
quote:
5s.gif 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 :?
Combinatie van vert.zoeken() en aantal.als() :)
  dinsdag 14 februari 2012 @ 16:27:30 #123
1592 Puckzzz
Bitch please!
pi_107972572
En alweer een vraag.
Excel 2010 NL

Ik heb een optelsom van aantal gewerkte uren.
Dit is in totaal bijvoorbeeld 65.25 uren (dus 65 uren en een kwartier)
Dan moet er in een andere cel dus het aantal in uren en minuten komen.

dus cel A1 staat 65.25
In cel A2 moet dan komen 65:15

Google maakt mij niet veel wijzer want die willen er allemaal een tijdnotatie van maken, en dat moet het dus niet zijn.

Mijn dank is weer oneindig ;)
Hey! Het is OK om alleen je eerste twee teennagels te lakken als je van plan bent peeptoes te gaan dragen!
  dinsdag 14 februari 2012 @ 16:40:01 #124
1592 Puckzzz
Bitch please!
pi_107973024
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 ;)
Hey! Het is OK om alleen je eerste twee teennagels te lakken als je van plan bent peeptoes te gaan dragen!
pi_107977821
quote:
17s.gif 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 ;)
Kan ook wel met formule: =INT(A1)&":"&60*(A1-INT(A1))
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')