• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Formule dynamisch maken

Friend

Verenigingslid
Lid geworden
31 jan 2009
Berichten
1.128
Beste forummers,

Is het mogelijk om de volgende formule in een cel in Excel wat dynamischer te maken?

Code:
=ALS(H3="";"";FILTER('C:\excel\import-alg\import\alle_jaren\[2024.xlsx]Blad1'!$D:$D;'C:\excel\import-alg\import\alle_jaren\[2024.xlsx]Blad1'!$B:$B=$G$3;""))

Nu is de bestandsnaam 2024.xlsx. Maar ik zou graag door het jaartal te vermelden b.v. in cel A3 het wat dynamischer willen maken en daardoor gemakkelijker ook voor b.v. 2023.xlsx willen kiezen.

Is dat mogelijk?

Friend
 
Je kunt beter de gegevens in alle bestanden in de directory 'alle_jaren' in 1 bestand zetten.
Daar wordt het leven een stuk eenvoudiger van.
 
snb,

Dank je wel voor je reactie. 👍

Ja dat zou je inderdaad zeggen. Het zijn alleen heel veel jaren en veel records/regels dus wilde het een beetje kleiner houden als het uberhaupt al kan in één bestand.

Maar als het niet kan in de formule dan wordt ik wel "gedwongen" naar de "het leven een stuk eenvoudiger" oplossing.

Maar jij zal het ongetwijfeld weten denk ik : is het wel of niet mogelijk??

Friend
 
Porbeer het hier eens mee:

CSS:
Sub M_snb()
  c00="C:\excel\import-alg\import\alle_jaren\"
  c01=dir(c00 & "*.xlsx")

  if c01<>"" then
    with workbooks.add
      do
        .sheets.add , .sheets(.sheets.count),,c00 & c01
        c01=dir
      loop until c01=""
   end with
  end if

end sub
 
Snb, Dank je wel. Dit plaats ik na Filter in de formule?
 
Snb,

Excuus, even verkeerd begrepen. Natuurlijk gaat dit niet in een formule.
Het is natuurlijk vba code voor een opdracht.

Jouw code brengt inderdaad alle jaren nu in één bestand met per jaar een werkblad.

Dat brengt mij er nog niet helemaal.

Omdat ik "zo heel graag" het jaar wil kiezen dus dat zou nu de tabblad naam moeten worden.

Friend
 
Welke namen krijgen de tabs van de werkbladen nu dan ?
 
Ik zou Gegevens, Gegevens ophalen, Uit bestand, Uit map eens proberen. En als je dan alle gegevens bij elkaar in de query hebt, er dan een draaitabel uit laten maken met een slicer op het jaar.
 
Snb,

Hij geeft nu de namen van de oorspronkelijke tabblad namen met een ext omdat het anders dubbel. Deze zou ik dan in de oorspronkelijke bestanden als tabblad naam het jaartal moeten geven.


1708444855898.png
 
Maar ik denk dat ik de oplossing voor nu heb waar ik tevreden mee kan zijn. Heb een opdrachtknop met de volgende code gemaakt zodat ik het jaartal in de formule kan veranderen.

Code:
Sub jaar_veranderen()
    Dim sAnswer1, sAnswer2 As String

    sAnswer1 = InputBox("Te vervangen jaartal: ")
    sAnswer2 = InputBox("Jaartal vervangen naar: ")
 
    Range("H2") = sAnswer2
    
    Range("B5:G5").Select
    Selection.Replace What:=sAnswer1, Replacement:=sAnswer2, LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False, FormulaVersion:=xlReplaceFormula2
    Range("B5").Select
    
    
End Sub
 
Jan Karel, dank je wel voor je reactie 👍

Ga hier wel even naar kijken of dit ook een oplossing voor mij kan zijn.

Friend
 
Kleine aanpassing:

CSS:
Sub M_snb()
  c00="C:\excel\import-alg\import\alle_jaren\"
  c01=dir(c00 & "*.xlsx")

  if c01<>"" then
    with workbooks.add
      do
        .sheets.add( , .sheets(.sheets.count),,c00 & c01).name=left(c01,4)
        c01=dir
      loop until c01=""
   end with
  end if
end sub
 
Snb,

dank je wel voor de aanpassing. Dat werkt keurig :)


1708631384332.png

Dank je.

Friend
 
Terug
Bovenaan Onderaan