Deze formule werkt niet trouwens. Geeft een error aan.quote:
Fucking moeilijk imo.quote:Op zondag 4 april 2010 02:14 schreef anathavia het volgende:
Ik heb een probleempje met het besturingselement "keuzelijst met invoervak". Bij besturingselement opmaken kan ik bij invoerbereik een bereik aangeven waaruit je met het keuzevak kunt kiezen. Ik wil echter maar een bepaald deel van het bereik (wat aan een bepaalde waarde voldoet) in het keuzevak hebben.
Klinkt volgens mij niet heel duidelijk dus zal ik een voorbeeldje geven.
op werkblad 1 heb ik een lijst staan met verschillende producten. kolom 1 de productnaam en kolom 2 het aantal.
Ik wil vervolgens een keuzelijst maken op werkblad 2 van alle producten op werkblad 1 waarvan er meer dan 3 zijn.
Geen idee waarom deze niet werkt. Als ik em copy-paste krijg ik alleen tekst (die formule dus) te zien. Ga ik erop staan en dan enter krijg ik die error dat er iets fouts is.quote:Op zondag 4 april 2010 13:36 schreef DaFan het volgende:
Je moet een klein beetje meedenken.
Left(A1,1) geeft alleen de meest linker karakter aan (1 dus). RIGHT(A1,1) geeft 0.
SUM(1,0) = 1
Werkt prima hier.
Maar goed:
=SUM(VALUE(LEFT(A1,FIND(" ",A1)-1)),VALUE(RIGHT(A1,LEN(A1)-FIND(" ",A1))))
Deze zou kunnen werken, alleen ik heb Excel 2007, engelse versie. En weet daar de formule niet voor.quote:Op zondag 4 april 2010 13:36 schreef ralfie het volgende:
=LINKS(A1;VIND.SPEC(" ";A1))+DEEL(A1;VIND.SPEC(" ";A1);1000)
handig is anders... Waarschijnlijk ook retetraag als je er veel gebruik van maakt een geen tussencel maakt.
The formula you typed contains error. ( zegt niet welke)quote:Op zondag 4 april 2010 14:22 schreef DaFan het volgende:
Wat voor error?
Bij mij werkt het namelijk prima als ik in A1 "10 20" zet.
Dat was het . Waar kan ik die landinstellingen veranderen. Werk liever met normale kommaquote:Op zondag 4 april 2010 14:25 schreef DaFan het volgende:
Probeer eens puntkomma dan.
Ws heb je landinstellingen anders staan.
Ok, he bedankt voor je hulp.quote:
Haha ja ik ben er niet zo handig in. Maar bij gewoon LEFT en RIGHT staat er #VALUE!quote:Op zondag 4 april 2010 14:45 schreef DaFan het volgende:
Waarom UPPER en LOWER wtf
Dat is toch totaal een andere functie. Die verandert alleen kleine letters naar grote en andersom . Die hebben geen argumenten nodig.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | Dim wb As Workbook Dim number As Byte Path = ThisWorkbook.Path & "\" Application.ScreenUpdating = False 'Import from WVB1 Set wb = Workbooks.Open(Path & "WVB1.xls", True, True) number = 1 With ThisWorkbook.Worksheets("Lijst") .Range("C4:K303").Formula = wb.Worksheets("Lijst").Range("D4:L303").Formula .Range("L4:L303") = number End With wb.Close False Set wb = Nothing Application.ScreenUpdating = False End Sub |
Het moet zeker sneller kunnen, ik heb ook zo'n soort bewerking op mijn werk en die werk in enkele minuten ca. 120 bestanden door. Je moet ze wel op je HDD zetten en niet vanaf een USB want dat gaat stukken langzamer.quote:Op maandag 5 april 2010 15:32 schreef actuarisje het volgende:
Hier een vraagje over de snelheid van een door mij gemaakte macro.
Ik heb op mijn werk een twintig-tal bestandjes met wat data daarin. Nu wil ik een overzicht maken met alle data, zodat ik, op basis van zo'n overzichts-bestand, een rapportage kan maken. Het idee is om de data in de twintig losse bestanden simpelweg onder elkaar te copy-pasten, zodat ik in één bestand alle data krijg. Uiteraard kan ik dit met de hand doen, maar dit leek mij nou juist een mooie taak voor een computer
Daartoe heb ik een macro bedacht (code staat hieronder), maar daar heb ik een vraag over. Als ik de macro run, dan duurt het hele proces op mijn PC 8 minuten en 35 seconden. Nu weet ik uit ervaring dat de PC's op mijn werk (VEEL) trager zijn, soms wel tot een factor 10 Maar laten wij het niet al te pessimistisch zijn en zeggen dat de PC's op mijn werk maar 2 keer langzamer zijn dan de mijne. Dan zou het runnen van de macro zo'n 16-17 minuten duren.
Maar dat zou betekenen dat ik alles beter met de hand onder elkaar kan copy-pasten, want daar ben ik zeker geen 16-17 minuten mee bezig.
Mijn vraag is dus: Ben ik gewoon extreem snel (sneller dan de computer) of is de macro die ik gebruik gewoon erg traag? En kan ik dit, op één of andere manier, verbeteren?
Het gaat om de volgende code:
[ code verwijderd ]
En het stukje tussen regel 10 en regel 18 staat er dan twintig keer in. Ik had er nog over nagedacht of ik geen for-loop kon gebruiken ofzo, maar daar kwam ik niet helemaal uit, omdat de range niet in elk bestand precies hetzelfde is. Dus heb ik de code maar gewoon twintig keer achter elkaar gezet
In de COUNTIF functie geef je een range mee. Deze verandert natuurlijk niet als je een autofilter gebruikt. Dus het is nogal logisch dat het gebruik van de filter niets doet met de uitkomst van de formule.quote:Op maandag 5 april 2010 18:28 schreef Che_ het volgende:
Ik heb mijn bestand bijna af. Ik zit nog met dit probleempje:
Ik heb een een lijst met ong. 1200 regels. Ik heb 5 kolommen aparte kolommen met daaronder allemaal informatie zoals naam, datum aantal etc. Nou heb ik de Autofilter toegepast en de COUNTIF formule. De countif formule werkt uitstekend, alleen wanneer ik filter op iets (d.m.v de autofilter) verandert er niks aan de COUNTIF. De aantallen die die aangeeft blijven hetzelfde als wanneer ik niet heb gefilterd.
Iemand enig idee hoe ik dit kan oplossen.
het zal al eenstuk schelen als je je calculation tijdelijk stopzetquote:Op maandag 5 april 2010 15:32 schreef actuarisje het volgende:
Hier een vraagje over de snelheid van een door mij gemaakte macro.
Ik heb op mijn werk een twintig-tal bestandjes met wat data daarin. Nu wil ik een overzicht maken met alle data, zodat ik, op basis van zo'n overzichts-bestand, een rapportage kan maken. Het idee is om de data in de twintig losse bestanden simpelweg onder elkaar te copy-pasten, zodat ik in één bestand alle data krijg. Uiteraard kan ik dit met de hand doen, maar dit leek mij nou juist een mooie taak voor een computer
Daartoe heb ik een macro bedacht (code staat hieronder), maar daar heb ik een vraag over. Als ik de macro run, dan duurt het hele proces op mijn PC 8 minuten en 35 seconden. Nu weet ik uit ervaring dat de PC's op mijn werk (VEEL) trager zijn, soms wel tot een factor 10 Maar laten wij het niet al te pessimistisch zijn en zeggen dat de PC's op mijn werk maar 2 keer langzamer zijn dan de mijne. Dan zou het runnen van de macro zo'n 16-17 minuten duren.
Maar dat zou betekenen dat ik alles beter met de hand onder elkaar kan copy-pasten, want daar ben ik zeker geen 16-17 minuten mee bezig.
Mijn vraag is dus: Ben ik gewoon extreem snel (sneller dan de computer) of is de macro die ik gebruik gewoon erg traag? En kan ik dit, op één of andere manier, verbeteren?
Het gaat om de volgende code:
[ code verwijderd ]
En het stukje tussen regel 10 en regel 18 staat er dan twintig keer in. Ik had er nog over nagedacht of ik geen for-loop kon gebruiken ofzo, maar daar kwam ik niet helemaal uit, omdat de range niet in elk bestand precies hetzelfde is. Dus heb ik de code maar gewoon twintig keer achter elkaar gezet
OK. Zal eens kijken hoeveel invloed dit heeft. Ik heb inmiddels ook al achterhaald dat het probleem waarschijnlijk ergens anders ligt. Ik heb de macro getest op een andere set bestanden en daar gaat het razendsnel (minder dan een halve minuut voor twintig bestanden). Het heeft dus blijbaar iets te maken met de bestanden die ik inlees...quote:Op maandag 5 april 2010 19:17 schreef ralfie het volgende:
[..]
het zal al eenstuk schelen als je je calculation tijdelijk stopzet
bij application.screenupdating=false ook
Application.Calculation = xlManual
bij application.screenupdating=true zet je dan nog
application.Calculation = xlCalculationAutomatic
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |