Yep... dat doe ik sowieso... heb je die extra code... want heb het gevoel dat mijn comp het niet aankan... ;-)quote:Op zondag 5 februari 2012 16:28 schreef KritischeMassa het volgende:
[..]
Ach had dat gezegd
dan had ik wat regels code toegevoegd om de berekeningen uit te zetten...
Je hebt wel een back up gemaakt eerst?
| 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 | Sub InsertLines() MOA Dim LastRow As Long With ActiveSheet LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row End With For i = LastRow To 1 Step -1 If ActiveSheet.Cells(i, 1) = "B" Then Rows(i + 1).Insert Shift:=xlDown End If Next MOU End Sub Sub MOA() 'MacroOptimalisatieAan On Error Resume Next Application.Cursor = xlWait Application.ScreenUpdating = False Application.EnableEvents = False Application.Calculation = xlCalculationManual Application.DisplayAlerts = False End Sub Sub MOU() 'MacroOptimalisatieUit On Error Resume Next Application.Cursor = xlDefault Application.ScreenUpdating = True Application.StatusBar = False Application.EnableEvents = True Application.Calculation = xlCalculationAutomatic Application.DisplayAlerts = True End Sub |
Dat werkte een stuk sneller... koste 5 minuutjes nu ;-)quote:Op zondag 5 februari 2012 16:43 schreef KritischeMassa het volgende:
Nee hij begint onderaan
ok
[ code verwijderd ]
quote:Op zondag 5 februari 2012 17:03 schreef elkravo het volgende:
[..]
Dat werkte een stuk sneller... koste 5 minuutjes nu ;-)
VEEL DANK!![]()
Mijn oorspronkelijke vraag is wel volledig opgelost, maar het totale probleem nog niet helemaalquote:
Die opmerking sloeg op jouw edit, je gaf aan dat het was gelukt maar niet helemaal. Wat lukt er dan niet?quote:Op zondag 5 februari 2012 17:14 schreef Sjaakbakfiets het volgende:
[..]
Mijn oorspronkelijke vraag is wel volledig opgelost, maar het totale probleem nog niet helemaal
Is een Gantt-chart geen optie?quote:Op zondag 5 februari 2012 19:00 schreef Corporaal het volgende:
Hoi,
Ik ben bezig met een spreadsheet voor de status van verschillende projecten. Om het geheel overzichtelijk te houden heb ik aan de status van de diverse projecten kleuren gekoppeld. Nu wil ik graag een losse legenda.Eigenlijk een soort pop up.
Kan dit in Excel?
MOA en MOUA zijn handig! Thankks!quote:Op zondag 5 februari 2012 16:43 schreef KritischeMassa het volgende:
Nee hij begint onderaan
ok
[ code verwijderd ]
Jouw versie is net wat uitgebreider dan wat ik zelf al had, die stopte en startte alleen het herberekenen namelijk..quote: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
quote: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 |
| 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 |
Dat zou je zelf kunnen uitvinden aan de hand van reeds gepostte code, maar ok, ik ben de kwaadste nietquote: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!
| 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 |
Nee je bent de kwaadste niet...quote: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 ]
Zoeken jullie nog collega's?quote: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
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.quote: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?
Hmm, dan zit ik met mijn opleiding Small Business & Retail Management niet echt goed geloof ikquote:Op dinsdag 7 februari 2012 06:37 schreef KritischeMassa het volgende:
[..]
Goeie meettechnici zijn schaars, dus ja die zeker
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, |
| Forum Opties | |
|---|---|
| Forumhop: | |
| Hop naar: | |