De waarden zijn allemaal gelijk, komen uit 1 bestand. Er staan geen spaties voor of achter, geen afrondingen, het zijn verrichtingscodes.quote:Op vrijdag 30 november 2012 11:32 schreef Deetch het volgende:
[..]
je omshcrijving is niet helemaal duidelijk maar kan het zijn dat de waarde die niet gevonden wordt misschien net iets anders geschreven wordt in de regel waar je hem zou willen vinden?
Misschien staat er stiekem een spatie voor of achter?
Is het getal afgerond?
Kun je een voorbeeld geven van je functie en waarop het dan mis gaat?
Kan het zijn dat het mis gaat in de ALS functie?quote:Op maandag 3 december 2012 09:23 schreef marcb1974 het volgende:
[..]
De waarden zijn allemaal gelijk, komen uit 1 bestand. Er staan geen spaties voor of achter, geen afrondingen, het zijn verrichtingscodes.
De functie is: {=INDEX('DBC Services'!C:C;VERGELIJKEN(Factuur!B6994;ALS('DBC Services'!B:B=Factuur!C6994;'DBC Services'!A:A);0))}
Dan zou het atlijd fout moeten gaan. En nu gaat het maar voor een deel fout. Dat is het deel waar ik dus tegenaan blijf lopen.quote:Op maandag 3 december 2012 09:42 schreef Deetch het volgende:
[..]
Kan het zijn dat het mis gaat in de ALS functie?
Als namelijk de voorwaarde niet klopt dan heb je geen array om de waarde van vergelijken in te zoeken waardoor je geen rijnummer hebt voor je INDEX functie.
Het gaat alleen fout als Factuur!C6994 niet in 'DBC Services'!B:B zou staan of als Factuur!B6994 niet in 'DBC Services'!A:A staatquote:Op maandag 3 december 2012 09:43 schreef marcb1974 het volgende:
[..]
Dan zou het atlijd fout moeten gaan. En nu gaat het maar voor een deel fout. Dat is het deel waar ik dus tegenaan blijf lopen.
Het is een bestand dat bestaat uit veel zich herhalende waarden. Zowel in A:A als B:B. De kans dat een waarde niet voorkomt in 'DBC Services' is hierdoor klein. Van de waarden die inderdaad niet voorkomen weten we welke dat zijn en verwachten we ook een #N/B.quote:Op maandag 3 december 2012 09:49 schreef Deetch het volgende:
[..]
Het gaat alleen fout als Factuur!C6994 niet in 'DBC Services'!B:B zou staan of als Factuur!B6994 niet in 'DBC Services'!A:A staat
Soms helpt het om de functie uit te splitsen om te zien welk deel verkeerd lopt. Dus eerst een kolom met de ALS-functie, dan de VERGELIJKEN en dan de INDEX.
Wat gebeurt er als je de spreadsheet opnieuw opbouwt vanuit een lege spreadsheet?quote:Op maandag 3 december 2012 10:11 schreef marcb1974 het volgende:
[..]
Het is een bestand dat bestaat uit veel zich herhalende waarden. Zowel in A:A als B:B. De kans dat een waarde niet voorkomt in 'DBC Services' is hierdoor klein. Van de waarden die inderdaad niet voorkomen weten we welke dat zijn en verwachten we ook een #N/B.
Het probleem zit hem echt erin dat hij een deel (van rij 6980 tm 14664) altijd als #N/B geeft. Een heel aantal van de waarden uit die range is handmatig opgezocht en staat er netjes in. Zonder spaties, afronden, etc.
Ik zoek echt naar het rare, in de formule opzich zit, voor zover wij hier weten, niets fout.
1 2 3 4 5 6 7 | Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) Range("IN1") = Range("IN1") + 0.1 End Sub Private Sub Save_File() ActiveWorkbook.SaveAs "C:\Users\Sven\School\Hoofdfase\Afstuderen\Planning\Planning Afstuderen - " & Format(Date, "dd-mm-yyyy") & ".xlsm" End Sub |
Ik ga het eens proberenquote:Op maandag 3 december 2012 12:06 schreef Deetch het volgende:
[..]
Wat gebeurt er als je de spreadsheet opnieuw opbouwt vanuit een lege spreadsheet?
Dus alle "kale" data (alles wat puur getal of tekst zou moeten zijn en geen resultaat van formules) kopieren en dan plakken speciaal als waarden en vervolgens de kolommen met formules opnieuw maken?
syntax:quote:Op maandag 3 december 2012 12:31 schreef qu63 het volgende:
Wat is er niet goed aan deze VBA-code?
[ code verwijderd ]
Ik wil dat iedere keer dat ik bestand opsla cel IN1 met 0,1 verhoogd wordt (het versienummer) en dat het bestand daarna (ook) opgeslagen wordt in "C:\Users\Sven\School\Hoofdfase\Afstuderen\Planning\" als "Planning Afstuderen - 03-12-2012.xlsm" in dit geval.
1 | Range("IN1").value = Range("IN1").value + 0.1 |
Dat stuk code werkt juist probleemloos op de manier zoals het in mijn post staat, het tweede deel doet t nietquote:Op maandag 3 december 2012 16:29 schreef Deetch het volgende:
[..]
syntax:
range("IN1") betekent een cel adres
range("IN1").value betekent de waarde van de cel met adres IN1
je code moet dus worden:
[ code verwijderd ]
Waar roep je de sub aan dan?quote:Op maandag 3 december 2012 17:49 schreef qu63 het volgende:
[..]
Dat stuk code werkt juist probleemloos op de manier zoals het in mijn post staat, het tweede deel doet t niet
Die staat in ThisWorkbook, niet onder modules.quote:
Nee, je moet in je beforesafe zoiets doenquote:Op maandag 3 december 2012 18:56 schreef qu63 het volgende:
[..]
Die staat in ThisWorkbook, niet onder modules.
Verder geen verwijzing naar die sub, dacht dat ie op dezelde manier zou werken als Workbook_BeforeSafe()
1 2 3 4 5 6 | sub Workbook_BeforeSafe( blah blah) application.enableevents = false cancel=true workbook.saveas naamvanjewerkboek.xls application.enableevents = true end sub |
Nee natuurlijk niet, het is nu gewoon een macro. Die moet je wel aanroepen.quote:Op maandag 3 december 2012 18:56 schreef qu63 het volgende:
[..]
Die staat in ThisWorkbook, niet onder modules.
Verder geen verwijzing naar die sub, dacht dat ie op dezelde manier zou werken als Workbook_BeforeSafe()
Top, die werktquote:Op maandag 3 december 2012 19:24 schreef ralfie het volgende:
[..]
Nee, je moet in je beforesafe zoiets doen
[ code verwijderd ]
Waarom werkte Private Sub Workbook_BeforeSave() dan wel Deze werd nergens aanders aangeroepen..quote:Op maandag 3 december 2012 19:24 schreef DaFan het volgende:
[..]
Nee natuurlijk niet, het is nu gewoon een macro. Die moet je wel aanroepen.
bepaalde events in vba worden automatisch aangeroepen. Workbook_open wordt aangeroepen wanneer het object Workbook het 'open' event triggered. Je kunt niet zomaar subs toevoegen en verwachten dat excel/vba zomaar weet wanneer die het moet runnen.quote:Op maandag 3 december 2012 19:47 schreef qu63 het volgende:
[..]
Waarom werkte Private Sub Workbook_BeforeSave() dan wel Deze werd nergens aanders aangeroepen..
Ik vond die safe_file() code ergens en ging er van uit dat die op dezelfde manier werkte als Workbook_BeforeSafe()quote:Op maandag 3 december 2012 19:51 schreef ralfie het volgende:
[..]
bepaalde events in vba worden automatisch aangeroepen. Workbook_open wordt aangeroepen wanneer het object Workbook het 'open' event triggered. Je kunt niet zomaar subs toevoegen en verwachten dat excel/vba zomaar weet wanneer die het moet runnen.
bovenaan de code editor staan van die leuke dropdown menuutjes die je altijd per ongeluk indrukt, maar die eigenlijk WEL handig zijn als je een event nodig hebt.quote:Op maandag 3 december 2012 19:58 schreef qu63 het volgende:
[..]
Ik vond die safe_file() code ergens en ging er van uit dat die op dezelfde manier werkte als Workbook_BeforeSafe()
My bad
Sven tochquote:Op maandag 3 december 2012 19:58 schreef qu63 het volgende:
[..]
Ik vond die safe_file() code ergens en ging er van uit dat die op dezelfde manier werkte als Workbook_BeforeSafe()
My bad
Sorry... Lui hequote:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | Public Function FileFolderExists(strFullPath As String) As Boolean On Error GoTo EarlyExit If Not Dir(strFullPath, vbDirectory) = vbNullString Then FileFolderExists = True EarlyExit: On Error GoTo 0 End Function Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) Range("IN1") = Range("IN1") + 0.1 Application.EnableEvents = False Cancel = True If FileFolderExists("C:\Users\Sven\School\Hoofdfase\Afstuderen") Then ActiveWorkbook.SaveAs "C:\Users\Sven\School\Hoofdfase\Afstuderen\Planning\Planning Afstuderen - " & Format(Date, "dd-mm-yyyy") & " - " & Format(TimeSerial(Hour(Now()), Minute(Now()), Second(Now())), "hh-mm-ss") & ".xlsm" Application.DisplayAlerts = False ActiveWorkbook.SaveAs "C:\Users\Sven\School\Hoofdfase\Afstuderen\Planning Afstuderen.xlsm" Application.DisplayAlerts = True Application.EnableEvents = True Else Application.Dialogs(xlDialogSaveAs).Show Application.EnableEvents = True End If End Sub |
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |