Check! Er staan idd formules inquote:Op woensdag 15 juni 2011 13:48 schreef DaFan het volgende:
[..]
Is je waarde in cl leeg leeg of is hij leeg door een formule?
Want dan is cl.Formula natuurlijk nooit ""
cl.Value <> "" is dan beter
vb;
Als ik A1:A10 heb staan
[ code verwijderd ]
(doorgetrokken)
Dan geeft cl.Value = 9
cl.Formula = 10
Edit, zo dus:
[ code verwijderd ]
http://www.contextures.com/xldataval02.htmlquote:Op woensdag 15 juni 2011 14:35 schreef McCandless het volgende:
Ik werk met Excel 2003 en heb daar een 2 keuzelijsten gemaakt. Alleen wil ik hierbij iets bewerkstelligen waarvan ik me afvraag of dit mogelijk is.
Ik heb dus 2 keuze-lijsten, stel 1 in A1 en 1 in A2.
De keuze's die ik bij A2 wil laten verschijnen moeten echter afhankelijk zijn van wat ik bij A1 gekozen heb. Bijvoorbeeld:
Keuze's A1:
Kosten
Opbrengsten
Keuze's A2:
Directe kosten
Indirecte kosten
Vaste opbrengsten
Losse opbrengsten
Directe kosten en indirecte kosten moeten dan alleen verschijnen als ik in A1 kosten heb gekozen.
Kan dit?
Niet veranderd, maar nu hoef ik niet om lege cellen heen te werkenquote:
Mooi! Nextquote:Op woensdag 15 juni 2011 14:38 schreef qu63 het volgende:
[..]
Niet veranderd, maar nu hoef ik niet om lege cellen heen te werken
De macro die te lang duurde is sneller geworden door het uitschakelen van het berekenen
Mijn dank is groot!quote:Op woensdag 15 juni 2011 14:37 schreef DaFan het volgende:
[..]
http://www.contextures.com/xldataval02.html
Sorry, ik heb even niets meer M'n sheets zijn nu weer snel en ze doen wat ze moeten doen!quote:
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 | Sub ShowOrHide(tabloid As String, sColumn As Integer, startRow As Integer, endRow As Integer, Hide, Level) Dim wsData As Worksheet Set wsData = Worksheets(tabloid) Application.ScreenUpdating = False Application.Calculation = xlCalculationManual Call UnProtect_WorkSheets(tabloid) For i = startRow To endRow Select Case Hide Case 0: If Cells(i, sColumn) <= Level Then wsData.Rows(i).Hidden = True 'Hide Case 1: If Cells(i, sColumn) <= Level Then 'Unhide wsData.Rows(i).Hidden = False Else wsData.Rows(i).Hidden = True End If Case 2: 'Unhide extra Level If Cells(i, sColumn) <= Level + 1 Then wsData.Rows(i).Hidden = False Else wsData.Rows(i).Hidden = True End If End Select Next i Call Protect_WorkSheets(tabloid) End Sub |
Volgens mij was er bij Excel 2010 in de VBA nogal wat aangepast misschien dat dat de oorzaak is.quote:Op donderdag 16 juni 2011 08:21 schreef actuarisje het volgende:
Hi All,
Ik heb een stukje code dat bepaalt of de regels in een bepaalde sectie wel of niet moeten worden laten zien.
[ code verwijderd ]
Ik run deze macro op een sectie van zo'n 4000 regels. Onder Excel 2007 duurt dat zo'n 5 seconden. Onder 2010 duurt het echter zo'n 150 seconden. Das dus 30x zo lang :S
Iemand enig idee waar dit verschil in snelheid vandaan komt?
Nee. De workaround die je kunt toepassen:quote:Op donderdag 16 juni 2011 08:48 schreef yozd het volgende:
Ik heb in Excel 2007 wat staafdiagrammen gemaakt. Deze heb ik gekopieerd naar Word, maar ze verschijnen alleen goed in beeld als ik copy/paste doe. Diegene naar wie ik het moet opsturen, wil het echter hebben als copy/paste special --> enhanced metabestand. Probleem is dan echter dat die de layout verpest. Hij laat de x-as en de rechter y-as helemaal niet meer zien!
Weet iemand hoe dat kan?
En dan nog een vreemder iets; als ik gewoon copy/paste in een Word bestand, ziet alles er goed uit, maar als een collega hetzelfde bestand opent, in dezelfde versie van Word, dan ziet hij de x-as en rechter y-as ook niet! Herkent iemand dit?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | Sub trimit() startTime = Time Application.ScreenUpdating = False Application.Calculation = xlManual Dim h As Long For h = 1 To Sheets("Data HO Sven").Range("A65536").End(xlUp).Row Range("A" & h).Value = trim(Range("A" & h).Value) Next Dim v As Long For v = 1 To Sheets("Data VP").Range("A65536").End(xlUp).Row Range("A" & v).Value = trim(Range("A" & v).Value) Next Application.Calculation = xlAutomatic Application.ScreenUpdating = True stopTime = Time elapsedTime = (stopTime - startTime) * 24 * 60 * 60 duur = Application.WorksheetFunction.Round(elapsedTime, 2) MsgBox "Klaar! Het trimmen duurde " & duur & " seconden." & Chr(13) End Sub |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | Sub trimit() startTime = Time Application.ScreenUpdating = False Application.Calculation = xlManual On Error GoTo errhandler Dim h As Long For h = 1 To Sheets("Data HO Sven").Range("A65536").End(xlUp).Row Range("A" & h).Value = trim(Range("A" & h).Value) Next Dim v As Long For v = 1 To Sheets("Data VP").Range("A65536").End(xlUp).Row Range("A" & v).Value = trim(Range("A" & v).Value) Next errhandler: Application.Calculation = xlAutomatic Application.ScreenUpdating = True stopTime = Time elapsedTime = (stopTime - startTime) * 24 * 60 * 60 duur = Application.WorksheetFunction.Round(elapsedTime, 2) MsgBox "Klaar! Het trimmen duurde " & duur & " seconden." & Chr(13) End Sub |
Dan ga ik het maar op deze manier doen denk ik. Bedankt!quote:Op donderdag 16 juni 2011 09:24 schreef Deetch het volgende:
[..]
Nee. De workaround die je kunt toepassen:
Screendump maken (CTRL+printScreen)
Plakken in paint of ander tekenprogramma
Selectie hieruit kopieren
Plakken speciaal als metabestand
Office 2010 gebruiken Daar zit een screenshot functie in!quote:Op donderdag 16 juni 2011 11:14 schreef yozd het volgende:
[..]
Dan ga ik het maar op deze manier doen denk ik. Bedankt!
1 2 3 4 5 | A B C 15 15 15 15 60 100% |
1 2 3 4 | 15 Done 15 Done 15 15 60 50% |
Nope, echt regel 8quote:
copy-pastequote:Waarom maak je h een Long?
idem..quote:Waarom zet je niet neer "Next h" ipv "Next", volgens mij is dit geen correcte syntax
alleen wel komma gebruiken ipv ;quote:Op donderdag 16 juni 2011 12:35 schreef DaFan het volgende:
=SUMIF(B1:B4;"=Done";A1:A4)/C4
(Neem aan dat '60' in C4 staat, niet in B4).
Moet je je taal er maar bij zetten zoals in de OP staatquote:
had al SUM gebruikt in plaats van SOMquote:Op donderdag 16 juni 2011 13:46 schreef DaFan het volgende:
[..]
Moet je je taal er maar bij zetten zoals in de OP staat
ik bedenk me net dat als je iets overslaat, dat het dan ook op zich 'gedaan' is.. kun je een OR als criterium van de SUMIF geven? dan kan ik gewoon find&replace gebruiken namelijkquote:
Niet te moeilijk doen imo;quote:Op donderdag 16 juni 2011 16:06 schreef 314 het volgende:
[..]
ik bedenk me net dat als je iets overslaat, dat het dan ook op zich 'gedaan' is.. kun je een OR als criterium van de SUMIF geven? dan kan ik gewoon find&replace gebruiken namelijk
ik wil dus =SUMIF(B1:B4;"=Done" of "=Skip";A1:A4)/C4 maar hoe ik het ook draai, wend, keer, probeer tussen haakjes erin te krijgen, Excel pikt het niet
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |