abonnement Unibet Coolblue Bitvavo
pi_107661889
:) Zorg wel dat je altijd MOU draait dus ook na fout afhandeling in macro code

Anders doet je excel het niet meer ;) (na herstart van excel wel trouwens hoor, maar omdat screenupdate uitstaat lijkt excel stuk)

In de application.statusbar kun je communiceren met de gebruiker, bijvoorbeeld percentage klaar weergeven, of gewoon de waarde van teller i bijvoorbeeld. Zo heeft de gebruiker ook het idee dat er wat gebeurt.

Edit:

Als jouw macro afhankelijk is van tussentijdse celuitkomsten moet je wel eerst de moa draaien en dan weer mou anders staat er niets in de cel want de berekeningen staan uit

[ Bericht 13% gewijzigd door #ANONIEM op 06-02-2012 06:51:52 ]
pi_107665111
mooi verhaal KM, deze ga ik veel gebruiken. Nog wel even puzzelen hoe die statusbar werkt.
Supra Groningam Nihil
Postjubilea: 10.000 15.000 20.000 25.000
Sit jou kop in die koei se kont en wag tot die bul jou kom holnaai
Wat niemand je vertelt over de bioindustrie, geen bloed maar feiten
  maandag 6 februari 2012 @ 12:09:16 #63
62215 qu63
..de tijd drinkt..
pi_107667982
quote:
14s.gif Op maandag 6 februari 2012 06:21 schreef KritischeMassa het volgende:
:) Zorg wel dat je altijd MOU draait dus ook na fout afhandeling in macro code

Anders doet je excel het niet meer ;) (na herstart van excel wel trouwens hoor, maar omdat screenupdate uitstaat lijkt excel stuk)

In de application.statusbar kun je communiceren met de gebruiker, bijvoorbeeld percentage klaar weergeven, of gewoon de waarde van teller i bijvoorbeeld. Zo heeft de gebruiker ook het idee dat er wat gebeurt.

Edit:

Als jouw macro afhankelijk is van tussentijdse celuitkomsten moet je wel eerst de moa draaien en dan weer mou anders staat er niets in de cel want de berekeningen staan uit
Jouw versie is net wat uitgebreider dan wat ik zelf al had, die stopte en startte alleen het herberekenen namelijk..
It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
pi_107679895
quote:
3s.gif Op maandag 6 februari 2012 10:35 schreef Deetch het volgende:
mooi verhaal KM, deze ga ik veel gebruiken. Nog wel even puzzelen hoe die statusbar werkt.

1
2
3
4
5
6
7
8
9
10
11
Sub StatBarDemo()

'Een simpel tellertje in de statusbar weergeven
For i = 0 To 32000
    Application.StatusBar = "Percentage uitgevoerd: " & CInt((i / 32000) * 100) & "%"
Next

'statusbar weer resetten
Application.StatusBar = False

End Sub

De progressbar is niet zo 1 2 3 te benaderen, maar daar kun je op deze manier omheen

1
2
3
4
5
6
7
8
9
Sub StatBarDemo()
'Een soort van progress bar in de statusbar weergeven
For i = 0 To 32000
    Application.StatusBar = (CInt((i / 32000) * 100)) & "%  " & String(CInt((i / 32000) * 10), ChrW(9609))
Next
'statusbar weer resetten
Application.StatusBar = False

End Sub

Als ik overigens hele uitgebreide code draai, zeg maar macro's van rond de 5 mb aan code dan speel ik vals en maak ik een optelsom van het percentage

Ik schat dan in hoe lang elke deel procedure ongeveer duurt en dan tel ik dat op bij het percentage.

Het gaat er niet zo om of het percentage echt klopt (zie ook windows progressbars, die kloppen ook nooit van een meter, 90% in een seconde en dan over de laatste 10% een half uur doen ;) )

Het gaat er om dat je de gebruiker het gevoel geeft dat er iets gebeurt, mensen zijn snel geneigd om op esc te drukken of op CTRL + ALT + Delete, met de mededeling "Hij liep vast ;(" Terwijl het gewoon soms tijd kost om iets te laten uitvoeren.

Zeker als je iets bouwt voor een groep gebruikers is het van belang ze het gevoel te geven dat er iets gebeurt, als het voor jezelf is, is het vooral opleuken... Ook leuk natuurlijk ;)

Ik bouw zelf macro's voor een middelgroot ingenieursbureau, vrij uitgebreide scripts die samenwerken met een aantal bussinessystemen en datacollectie systemen (loggerdata, veldwerkdata etc), die een geweldig kloterige uitvoer hebben, maar die zijn door een hotemetoot aangekocht die inmiddels met een dikke handdruk elders werkt...

Uit irritatie hierover ben ik ooit zelf begonnen met het maken van die dingen, zo erg dat ik mijn eigen werkzaamheden zowat had weggeprogrammeerd. Tegenwoordig mag ik een deel van mijn tijd besteden aan dit soort crea-bea gehobby *O*

[ Bericht 14% gewijzigd door #ANONIEM op 06-02-2012 18:51:56 ]
pi_107685410
Hoi KM,

Dit moet een eitje zijn voor je:

In een lijst van 10.000 items (lengte beperking), staan in kolom B datums.
Willekeurig ontbreken op bepaalde regels/rijen datums (lege cel).

Er is nooit sprake van twee lege regels/rijen.

Is er een leuk VBAtje waarbij van cel B5 t/m B10.005 wordt doorlopen en indien lege cel, de datum(-waarde (paste value)) van de bovenstaande wordt gekopieerd en geplakt? Zou me handmatig een-voor-een copy-pasten schelen.

Bij voorbaat dank! :)
pi_107686130
quote:
0s.gif Op maandag 6 februari 2012 19:28 schreef elkravo het volgende:
Hoi KM,

Dit moet een eitje zijn voor je:

In een lijst van 10.000 items (lengte beperking), staan in kolom B datums.
Willekeurig ontbreken op bepaalde regels/rijen datums (lege cel).

Er is nooit sprake van twee lege regels/rijen.

Is er een leuk VBAtje waarbij van cel B5 t/m B10.005 wordt doorlopen en indien lege cel, de datum(-waarde (paste value)) van de bovenstaande wordt gekopieerd en geplakt? Zou me handmatig een-voor-een copy-pasten schelen.

Bij voorbaat dank! :)
Dat zou je zelf kunnen uitvinden aan de hand van reeds gepostte code, maar ok, ik ben de kwaadste niet ;)

Deze code in het werkblad of een module plakken

1
2
3
4
5
6
7
8
9
10
11
Sub AddDate()
MOA 'sub MOA is een paar posts terug te vinden
    
    For i = 5 To 10005
        If ActiveSheet.Cells(i, 2) = "" Then
            ActiveSheet.Cells(i, 2) = ActiveSheet.Cells(i - 1, 2)
        End If
    Next

MOU 'sub MOU is een paar posts terug te vinden
End Sub


[ Bericht 3% gewijzigd door #ANONIEM op 06-02-2012 19:42:55 ]
pi_107686960
quote:
3s.gif Op maandag 6 februari 2012 19:41 schreef KritischeMassa het volgende:

[..]

Dat zou je zelf kunnen uitvinden aan de hand van reeds gepostte code, maar ok, ik ben de kwaadste niet ;)

Deze code in het werkblad of een module plakken
[ code verwijderd ]

Nee je bent de kwaadste niet... ^O^

Ik kan VBA wel beredeneren als ik het zie, maar bedenken wordt toch heel wat moeilijker... harstikke bedankt!
  maandag 6 februari 2012 @ 20:51:28 #68
62215 qu63
..de tijd drinkt..
pi_107690158
quote:
4s.gif Op maandag 6 februari 2012 17:17 schreef KritischeMassa het volgende:
Uit irritatie hierover ben ik ooit zelf begonnen met het maken van die dingen, zo erg dat ik mijn eigen werkzaamheden zowat had weggeprogrammeerd. Tegenwoordig mag ik een deel van mijn tijd besteden aan dit soort crea-bea gehobby *O*
Zoeken jullie nog collega's? O-)
It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
pi_107702804
quote:
0s.gif Op maandag 6 februari 2012 20:51 schreef qu63 het volgende:

[..]

Zoeken jullie nog collega's? O-)
Goeie meettechnici zijn schaars, dus ja die zeker
pi_107703516
Hallo,

Bestaat er een optie in Excel of een Macro dat er twee bestanden met elkaar vergeleken worden en dat er dan één bestand (bv masterbestand)
word aangevuld met de gegevens die in het 2e bestand meer staan?
Eigenlijk is het dus een soort synchronisatie?

Ik wil dus eigenlijk de kolommen A tm H vergelijken.
pi_107703546
Het antwoord van Wokkel in jouw eerste topic voldeed niet?

Stel dat A1 blad 1 gelijk is aan A23 blad 2 moet dan ook B1 met B23 worden vergeleken? en zo verder voor C t/m H of is een vergelijking van A met A voldoende?
pi_107703710
quote:
3s.gif Op dinsdag 7 februari 2012 08:38 schreef KritischeMassa het volgende:
Het antwoord van Wokkel in jouw eerste topic voldeed niet?

Stel dat A1 blad 1 gelijk is aan A23 blad 2 moet dan ook B1 met B23 worden vergeleken? en zo verder voor C t/m H of is een vergelijking van A met A voldoende?
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.
pi_107703766
Niet ingewikkeld, wel traag (indien VBA)

Ik zou eerst eens de tip van wokkel uitproberen.

Anders kom ik hier vanmiddag/avond op terug (zit nu op mijn werk ;) )
  dinsdag 7 februari 2012 @ 09:46:30 #74
62215 qu63
..de tijd drinkt..
pi_107704672
quote:
3s.gif Op dinsdag 7 februari 2012 06:37 schreef KritischeMassa het volgende:

[..]

Goeie meettechnici zijn schaars, dus ja die zeker
Hmm, dan zit ik met mijn opleiding Small Business & Retail Management niet echt goed geloof ik :+
It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
pi_107707352
Excel 2010 de look van Excel 2007 geven, kan dat?
pi_107708046
quote:
5s.gif Op dinsdag 7 februari 2012 11:31 schreef Setting_Sun het volgende:
Excel 2010 de look van Excel 2007 geven, kan dat?
Nee. Wen er maar aan :P
En ook al zou het kunnen zou ik het niet doen als ik jou was.
pi_107709915
quote:
5s.gif 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.
Supra Groningam Nihil
Postjubilea: 10.000 15.000 20.000 25.000
Sit jou kop in die koei se kont en wag tot die bul jou kom holnaai
Wat niemand je vertelt over de bioindustrie, geen bloed maar feiten
pi_107719238
quote:
0s.gif 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.
Werkte de tip van Wokkel?
pi_107726291
Op deze locatie kun je een zipfile downloaden die de volgende files bevat:

Master (voorbeeld file)
Slave (voorbeeld file)

MergeFile.xls (excel sheet)
MergeFile.xla (add-in)

Mergefile gaat het om, de master en slave zijn twee files die samengevoegd moeten worden

Ik ben ervan uitgegaan dat in zowel de master als de slavefile het de eerste sheet (tabblad) betreft

Er zit een hoop bla bla code bij om het één en ander gebruiksvriendelijk te maken (een menu met een item, een userform voor het aanwijzen van de files en MOU en MOA)

Uiteindelijk gaat het om de routine MergeFiles. (zie code hieronder). Wat je moet weten is dat "sheets(1)" slaat op het eerste tabblad, je kan dit zelf (consequent!) aanpassen (WB1 is de master, wb2 is de slave)

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

MergeFile is twee keer toegevoegd, 1 keer als xls (een gewoon werkboek) en 1 keer als .xla. Dit is een add-in die je via invoegtoepassingen standaard in excel kunt installeren

Ik heb klachten gezien dat je virusscanner op mediafire kan afgaan, daar kan ik niets aan doen. De code zelf in de xla en de xls is identiek en vrij toegankelijk en is virus vrij.

Ik raad je wel aan om altijd een backup te maken van je master en slave file voor je gaat testen met mijn code, want tja, ik blijf een hobby programmeur.

Als je Mediafire niet vertrouwt kan ik je de zipfile ook mailen, DM me dan.

[ Bericht 46% gewijzigd door #ANONIEM op 07-02-2012 20:10:51 ]
pi_107736040
Ik heb macro's verwijderd uit mijn spreadsheet.
Echter bij opstarten meld Excel "deze sheet bevat macro's"...

Wat ben ik vergeten?
  woensdag 8 februari 2012 @ 01:59:45 #81
62215 qu63
..de tijd drinkt..
pi_107739522
quote:
0s.gif 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?
Opgeslagen als .xlsm?
It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
pi_107757188
Fixel, was mijn oplossing wat je wilde?

[ Bericht 22% gewijzigd door #ANONIEM op 08-02-2012 17:30:40 ]
pi_107759122
quote:
0s.gif Op woensdag 8 februari 2012 01:59 schreef qu63 het volgende:

[..]

Opgeslagen als .xlsm?
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?
pi_107759154
Module verwijderen. Alt+F11
pi_107759643
quote:
0s.gif Op woensdag 8 februari 2012 18:29 schreef hendrik2009 het volgende:
Module verwijderen. Alt+F11
Thanks! ^O^
  woensdag 8 februari 2012 @ 19:05:44 #86
62215 qu63
..de tijd drinkt..
pi_107760644
quote:
0s.gif 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?
Dan zou het opgeslagen kunnen zijn als .xlm, maar ik zie dat t al opgelost is ;)
It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
  donderdag 9 februari 2012 @ 10:01:32 #87
1592 Puckzzz
Bitch please!
pi_107782108
En daar is ze weer met een domme vraag! :D Dat van die taal vergeet ik ff het liefst zo snel mogelijk :@

Excel 20110 NL ;)

Ok...ik heb een hele lijst met adressen/locaties van rioolgemaaltjes (meer dan 600) een aantal van die adressen uit de lijst zijn hoofdgemalen. Deze lijst staat op de tab 'installaties'
Nu is het zo dat ik elke maand een export doe uit ons storingssysteem, dan krijg ik dus een hele lijst met storingen die voorgevallen zijn aan de verschillende installaties. Die lijst komt op de eerste tab, waarna ik eruit ga filteren welke storingen verrekenbaar zijn.
Momenteel filter ik dus handmatig dmv de zoekfunctie welke gemalen uit die lijst de hoofdgemalen zijn (want dat is een andere verrekenprijs) en maak de cel lichtrood. Een heel werk :)
Kan ik in de kolom van tab 1 waar de adressen staan een soort voorwaardelijke opmaak instellen zodat hij meteen de adressen van de hoofdgemalen herkent en de cel lichtrood maakt?
Hey! Het is OK om alleen je eerste twee teennagels te lakken als je van plan bent peeptoes te gaan dragen!
pi_107782470
Stel lokatie van storing staat in cel A2
De lijst met hoofdgemaallocaties staat op tabblad "gemaal" cellen A2:A20.

met deze formule:
=IF(ISERROR(VLOOKUP(A2,gemaal!$A$2:$A$20,1,FALSE)),"","X")

In het NL =ALS(ISFOUT(VERT.ZOEKEN(A2;gemaal!$A$2:$A$20;1;ONWAAR));"";"X")

bepaal je of de locatie in A2 een hoofdgemaal is. Zo ja dan komt er in de cel een X te staan zo nee dan komt er niks te staan.
De "" en "X" kun je naar believen veranderen in een functie of waarde, bijvoorbeeld de verrekenprijs
Supra Groningam Nihil
Postjubilea: 10.000 15.000 20.000 25.000
Sit jou kop in die koei se kont en wag tot die bul jou kom holnaai
Wat niemand je vertelt over de bioindustrie, geen bloed maar feiten
pi_107786273
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...
  donderdag 9 februari 2012 @ 14:48:22 #90
85514 ralfie
!Yvan eht nioj
pi_107791469
quote:
0s.gif 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...
1sheet.Copy([before], [after]);
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')