• 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.

Oplopende celnummers en oplopende bestandsnaam

Status
Niet open voor verdere reacties.

TALES

Gebruiker
Lid geworden
8 nov 2009
Berichten
28
In het voorbeeld heb ik een 4 tal bestanden deze lopen op in nummer 2.xls,3.xls,4.xls,5.xls (het uiteindelijk doel is tot 16)
In basis.xls heb ik het volgende:

B2=ALS.FOUT(ALS('[2.xls]Blad1'!$C$6="v";"V";"");"")
C2=ALS.FOUT(ALS('[2.xls]Blad1'!$C$9="v";"V";"");"")
D2=ALS.FOUT(ALS('[2.xls]Blad1'!$C$12="v";"V";"");"")
E2=ALS.FOUT(ALS('[2.xls]Blad1'!$C$15="v";"V";"");"")

B3=ALS.FOUT(ALS('[3.xls]Blad1'!$C$6="v";"V";"");"")
C3=ALS.FOUT(ALS('[3.xls]Blad1'!$C$9="v";"V";"");"")
D3=ALS.FOUT(ALS('[3.xls]Blad1'!$C$12="v";"V";"");"")
E3=ALS.FOUT(ALS('[3.xls]Blad1'!$C$15="v";"V";"");"")

B4=ALS.FOUT(ALS('[4.xls]Blad1'!$C$6="v";"V";"");"")
C4=ALS.FOUT(ALS('[4.xls]Blad1'!$C$9="v";"V";"");"")
D4=ALS.FOUT(ALS('[4.xls]Blad1'!$C$12="v";"V";"");"")
E4=ALS.FOUT(ALS('[4.xls]Blad1'!$C$15="v";"V";"");"")

B5=ALS.FOUT(ALS('[5.xls]Blad1'!$C$6="v";"V";"");"")
C5=ALS.FOUT(ALS('[5.xls]Blad1'!$C$9="v";"V";"");"")
D5=ALS.FOUT(ALS('[5.xls]Blad1'!$C$12="v";"V";"");"")
E5=ALS.FOUT(ALS('[5.xls]Blad1'!$C$15="v";"V";"");"")

Ik controleer of het bestand bestaat en zo ja kijk in een bepaalde cel of er een v staat zo ja zet er een V neer anders leeg laten.
De 6, 9, 12, 15 deze lopen door tot 36 oplopend sprongen van 3 hoe kan ik dit automatisch doortrekken naar rechts.

Hoe kan ik de oplopende bestandsnaam doortrekken deze lopen tot 16.

Alvast bedankt.

mvg,

TALES
 
Probeer het eens met de functie INDIRECT() dit een beetje combineren met de RIJ() en KOLOM() functies.
 
Ik heb wat dingen zitten proberen met INDIRECT maar snap daar niet veel van.
 
Altijd fijn als je ook zegt wat je geprobeerd hebt en wat je niet snapt.

Code:
=ALS(INDIRECT("["&RIJ()&".xls]Blad1!$C$6")="v";"V";"")

PS waarom je bestanden opslaan als .xls ipv .xlsx?

Niels
 
Laatst bewerkt:
Het begint nu aardig vorm te krijgen. Alleen vind ik het wel bijzonder dat ik dadelijk 16 bestanden open moet hebben om het op 1 data overzicht te hebben.
Het enige wat ik van de sheet moet hebben is de V.
Sheet 1 persoon 1
1 x
3 x
6 x
9
12 v
15 v
18 v
21 x
24 x
27 x
30

sheet 1 persoon 2
1 x
3 v
6 v
9 v
12
15
18
21
24
27
30

Data overzicht

1 3 6 9 12 15 18 21 24 27 30
persoon 1 v v v
persoon 2 v v v

Misschien heeft iemand een oplossing zonder dat ik 16 sheets open moet hebben.
 
Plaats even een excel voorbeeldje. Dat leest en werkt wat makkelijker dan alle blokken tekst te moeten doorgronden.
 
Ik heb werkelijk geen idee wat je wil. Wat staat waar en waarom? Wie is PersoonX t/m y waar moet dit dit vandaan komen wat de nummers zijn en welke relatie ze tot elkaar hebben schiet mij maar lek.
 
Persoon 1 krijgt bestand 1
Persoon 2 krijgt bestand 2
Persoon 3 krijgt bestand 3
Etc.. Tot persoon 15

In werkelijkheid is dit allemaal het zelfde bestand alleen anders genoemd.

Elke persoon vult zijn vrijedagen in door in het bestand een v te zetten. Op sommige plekken staat een x sommige plekken zijn leeg in de maand hier doe ik niks mee. Ik wil in het overzichts bestand alle v"s hebben.

De maand jan met de datums de naam persoon recht daar van waar hij of zij een v heeft ingevuld.
 
Waarom heb je alleen nummers 1, 4, 7 etc. nodig? Het lijkt me dat als het hier maanden en vrije dagen betreft, dat je 5, dan wel 7 dagen gebruikt?

(Kan ik daar niet ook werken, 1 dag werken, 2 dagen weekend?)
 
Volgens mij maakt het niet zo veel uit of het in losse bestanden staat of in 1 bestand. Bestanden hoeven niet open te staan om te koppelen. Toch?

@TALES,

Het zal wel zijn omdat het voorbeeld bestandjes zijn maar ik vind het maar een rommelige zooi. Lege rijen, lege kolommen geen enkele structuur in te vinden. Jouw losse bestandjes heb ik in het overzicht gezet met de namen Persoon 1, Persoon 2 en Persoon 15. Als naar dingen wil verwijzen dan werkt het makkelijker als het ook dezelfde naam heeft.

Met deze formule kan je de gegevens opvragen uit de verschillende tabjes:
PHP:
=ALS.FOUT(ALS(INDEX(VERSCHUIVING(INDIRECT("'"&$A4&"'!$A$1");5;VERGELIJKEN($A$1;INDIRECT("'"&$A4&"'!$A$5:$BT$5");0)-2;31;2);VERGELIJKEN(B$2;INDIRECT("'"&$A4&"'!$B$6:$B$36");0);2)="v";"V";"");"")
 

Bijlagen

Het origineel is niet rommelig maar daar staat nog veel meer data op dan wat ik nodig heb. De kleine bestandje gaven de plaatsen aan waar wat voor waarde staat. Met de formule die je op geeft kan ik dus 1 op 1 gebruiken en hoeft ik niet bepaalde dingen aan te passen.

Ik heb de formule bekeken en vind het bijzonder dat een B in je formulie opeens een C word om jan, feb etc.. te vergelijken. De formule werkt uitstekend top bedankt hier voor.

Jammer dat het nu allemaal in 1 bestand moet. Maar toch bedankt en ga het op deze manier doen.
 
Volgens mij heb ik nergens geschreven dat de bestanden in één bestand moeten staan. In het voorbeeldje heb ik dit gedaan omdat jouw mappenstructuur ongetwijfeld anders is dan de mijne. De functie INDIRECT() werkt ook met andere bestanden. Alleen moet je dan ook aangeven waar de bestanden staan.

Als de vraag opgelost is wil je deze dan ook op opgelost zetten?
 
Ik heb met INDIRECT zitten spelen maar kwam er achter dat wanneer deze informatie moet halen uit aparte bestanden deze open moeten zijn om de informatie op te halen.

Ik zou het super vinden als het op die manier zou werken.
Waar ik o.a. mee heb zitten proberen is:
PHP:
Sub Opensluiten()
    Dim openWb As Workbook
    For i = 1 To 15    
       Set openWb(i) = Workbooks.Open("C:\users\" & Environ$("username") & "\desktop\roosters\" & (i) & "_2015.xlsx")
       openWb(i).Close (False)    
    Next i
End Sub
Om de bestanden open en dicht te gooien zodat het overzicht bestand de informatie kan halen maar dit stukje lijkt niet te werken & (i)

PHP:
Sub Opensluiten()
    Dim openWb As Workbook
    For i = 1 To 15
     Select Case i
      Case 1
       Set openWb = Workbooks.Open("C:\users\" & Environ$("username") & "\desktop\roosters\1_2015.xlsx")
       openWb.Close (False)
      Case 2
       Set openWb = Workbooks.Open("C:\users\" & Environ$("username") & "\desktop\roosters\2_2015.xlsx")
       openWb.Close (False)
      Case 3
       Set openWb = Workbooks.Open("C:\users\" & Environ$("username") & "\desktop\roosters\3_2015.xlsx")
       openWb.Close (False)
     'etc....
     End Select
    Next i
End Sub
 
Zorg dat de bestanden in 1 directory terecht komen

Code:
Sub M_snb()
  dim sn(1 to 16)

  for j=1 to 16
    with getobject("G:\samen\" & j & "_2015.xlsx")
       sn(j)=.sheets(1).usedrange
       .close 0
    end with
   next

    for j=1 to ubound(sn)
      thisworkbook.sheet1.cells(rows.count,1).end(xlup).offset(1).resize(ubound(sn(j)),ubound(sn(j),2))=sn(j)
    next
End Sub

Maar je maakt het jezelf een stuk eenvoudiger als vanuit ieder werkboek de relevante gegevens als platte tekst worden weggeschreven naar een gemeenschappelijk bestand:

Code:
Open "G:\samen\consolidatie.csv" for append as #1
   write c00
close #1
 
Laatst bewerkt:
Bekijk bijlage Overzicht1.xlsx

Dit is wat ik nu heb ik hoop dat het iets duidelijker is.
De maanden jan tot dec tabs.
Het voorbeeld "Persoon 1" tab (Hier komen in het origineel dan 15 tabs extra bij :()

Het "Persoon 1" tab is een bestand genaamd 1_2015.xlsx maar deze heb ik gekopieerd naar dit bestand.

De V's ophalen uit de gesloten bestanden: 1_2015.xlsx, 2_2015.xlsx, 3_2015.xlsx --- 16_2015.xlsx
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan