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

bestanden samenvoegen ( eenzefde blad) telkens ander Tabblad

Status
Niet open voor verdere reacties.
Je moet NIETS aan mijn code van post # 16 veranderen, ENKEL de folder die gedaan moet worden (die kan ik nl. niet zeker weten).

Als je dat dan uitvoert, moet je 1 MsgBox per bestand krijgen, met daarin de naam van het bestand.

Wigi
 
wigi

zoals je aangeeft wijzig ik voorlopig niets aan je code .
De plaats waar m'n map staat = Bureaublad in apparte map zijnde Testmap
met daarin - Basis ( daar waar de bestanden dien te worden gewijzigd)
- Invoegblad1 ( daar waar de gegevens vandaan komen)
- Invoegblad2 ( " " " ")

(( later uit te breiden naar meerdere invoegbladen))

hierdoor hen ik alleen hetvolgende aangepast :
Code:
 sPath = "C:\Users\Mark\Desktop\Testmap"    'location of files

en

Code:
 sFil = Dir("Invoegblad1.xls")

als ik dit draai zie ik dus 1 tabblad met MsgBox.

Dit is hopelijk reeds een goed begin ??

Hoe voeg ik dan Invoegblad2 in ???


alvast dank voor het geduld .


grema
 
Grema,
Onderstaand antwoord is zonder de hele thread in detail door te lezen.

Volgende aanpassing is niet nodig, anders ga je maar in 1 bestand zoeken

Code:
 sFil = Dir("Invoegblad1.xls")

Dat moet je laten op de waarde die Wigi had, dus:

sFil = Dir("*.xls")

gebruiken.

Die * staat voor alle xls (dus Excel bestanden met versie kleinder dan Excel 2007) in die opgegeven folder. Jij benaderde maar 1 bestand.
 
Laatst bewerkt:
Finch,

indien ik jou aanpassing doorvoor krijg ik geen Msg Box meer.

Inderdaad met m"n code had ik maar 1 invoegblad maar wel een MsgBox.

Kan je ook aangeven waar de fout kan liggen?

Kan het te maken hebben met het opslaan van m'n mappen . (alles onder 1 werkmap)

Nu zie ik m'n blad even flitsen ; kan niet zien wat er gebeurt.

grema
 
Finch , Wigi,

Ben er uiteindelijk uit. ttz het basisbestand stond in hetzelfde map als de in te voegen// op te zoeken files. Blijkbaar mag dit niet.

Leek me gewoon handig omdat dan alles wat enigziens verband had met deze bestanden in 1 Map geklasseerd waren .


Nu nog een code vinden om alles te copieren en op de juiste plaats in te voegen.

maar welke ?
 
Wigi,

begin van de code ???

Code:
   ' do something

         sFil = Range("A4:$G10").Select
      
        
        MsgBox oWbk.Name

Maar dan plakken telkens op basisbestand op juiste " Tabblad " ??

Hoz doe je dit ???

grema
 
geraak er echt niet door . reeds verschillende mogelijkheden geprobeerd.
waaronder een afkooksel van Showthread.php?t=330985

onderstaand probeersel . niets lukt .

Code:
 Sub Open_All_Files()
    Dim oWbk As Workbook
    Dim sFil As String
    Dim sPath As String

    sPath = "C:\Documents and Settings\MARK\Bureaublad\TESTMAP"    'location of files
    ChDir sPath    '= de folder met mappen die gedaan moet worden
   sFil = Dir("*.xls")
       'change or add formats    "   ? = enkel xls bestanden in die folder mogen in de code gedaan worden. xlsx is een Excel bestand in versie 2007. Verander dit tot .xls
    Do While sFil <> ""    'will start LOOP until all files in folder sPath have been looped through
        
        On Error GoTo here
        Set oWbk = Workbooks.Open(sPath & "\" & sFil) 'opens the file

        ' do something

         sFil = Range("$A4:$G10").Select
        ' sFil = Copy("Invoegblad1").Range("A5")
         'Dim Invoegblad1 As Range
         ' Dim Invoegblad2 As Range
        
         ' Set Invoegblad1 = Sheets("invoegblad1").Range("A5")
         'Set Invoegblad2 = Sheets("invoegblad2").Range("A5")
    

        MsgBox oWbk.Name
        
       
        
        
        oWbk.Close False    'close the workbook, not saving changes
        
here:
        sFil = Dir
        
    Loop    ' End of LOOP
End Sub


In basis hebben de tabbladen dezelfde naam als de in te voegen bestanden.
Door deze loop geraak ik niet . Ben lang nog geen specialist.

Kan ieman dme nog even hierdoor helpen ???

Alvast dank

grema
 
Mark

oWbk is de naam van het bestand dat geopend is terwijl je de lus bezig bent, dus 1 voor 1.

Met bv.

Code:
oWbk.Sheets(2)

spreek je het 2de tabblad aan van elk bestand in de lus.

Een 1 zetten in cel A1 op het tweede blad van elk bestand in de map:

Code:
oWbk.Sheets(2).Range("A1").Value = 1

enz.

Wigi
 
Wigi,

met jou uitleg krijg ik het getal " 1 " wel degelijk op het blad ; maar niet naar m'n juiste Blad.(Basis)

Zoals ik eerder aangaf heb ik een basisbestand (met naam " Basis") en verschillende Tabbladen met dezelfde naam als de in te voegen bestanden.
Vanuit een map (Testmap met submappen Invoegblad1 & Invoegblad2 )
wens ik de gegevens hieruit over te zetten naar het basisbestand.

met hetgeen je me nu meegeeft ; krijg ik de gegevens uit de testmap nog niet naar de basismap. (Dit is nodig om al m'n gegevens regelmatig te kunnen "updaten ")

Hiervoor probeerde ik al met select en copy ; maar dit lukte niet.
Weet wel dat ik ergens in de loop zit, maar het copieren gaat nog niet.

Kan je nog even bijsturen ???
 
Mark

Wat ik in deze topic (al een hele tijd) probeer te doen, is van "buiten naar binnen werken":

- die lus geven en uitleg geven zodat je die lus kan krijgen, met de msgbox per bestand

- dan per bestand, het tabblad nemen

- dan de juiste cellen kopiëren

Het eerste is gelukt, nu zit jij aan stap 2.

Ik heb als aanzet geschreven hoe je een tabblad kan benoemen en hoe je een cel kan benoemen. Zie eerdere voorbeeld.

Dus zie dat je het juiste tabblad al kan pakken.

Wigi
 
Wigi,

juiste Tabblad was ondertussen ook gelukt.

zie code ( even ter controle)
Code:
   oWbk.Sheets(1).Range("A4:G10").Select
         oWbk.Sheets(1).Range("A4:G10").Copy

Nu nog op het juiste basis bestand krijgen .

Daar sPath = 'location of files


dacht ik dat er hier naar gekopieerd moest worden met onderstaande code
Code:
  sPath.Paste

want daar moet alles komen te staan .

Dit blijkt nog niet te kloppen !!!
 
Selecteren in de code hoeft niet.

En kopiëren naar waar? Waarschijnlijk is dat toch ThisWorkbook, niet.

Code:
oWbk.Sheets(1).Range("A4:G10").Copy Destination:=ThisWorkbook.Sheets(naamvandesheet).Range(bereik)

WEER: bestand ==> tabblad ==> bereik

Wigi
 
Code:
 En kopiëren naar waar? Waarschijnlijk is dat toch ThisWorkbook, niet.

Is niet This Workbook. staat op een aparte file nml ;

"C:\Documents and Settings\MARK\Bureaublad\Basis"

Moet het dan ThisWorkbook zijn ???
 
Laatst bewerkt:
Met ThisWorkbook verwijs je naar de workbook van waaruit de code wordt aangeroepen.

Maak dat het wat duidelijker?
 
Het hangt er natuurlijk van af waar de code staat. Indien in een ander bestand, dan zal je eerst dat bestand moeten openen in de code.

Maar doe dat buiten de lus, anders open je dat bestand veel te veel keren. 1 keer openen is al genoeg.

Wigi
 
ben weer even niet mee ;

als ik men basis bestand in dezelfde map plaats als de uit te voeren bestanden;
dan krijg ik zelfs m'n Msg boxen niet. Haal ik hem eruit dan wel.

Nu geef je aan dat alles in " ThisWorkbook " kan staan ; waarom gaat dit dan bij mij niet ?
 
Jij verwart ThisWorkbook (onderdeel zoals modules, sheet modules, class modules, userforms), met ThisWorkbook - wat Finch al aangaf -: een verwijzing naar het bestand waar de code staat.

De code kan in het bestand wordt WAARNAAR gekopieerd wordt, of zelfs in een ander bestand. Dat mag je kiezen, spreekt voor zich dat de code dan wel verandert voor wat betreft het kopiëren. Maar de code komt wel sowieso in een MODULE te staan.

Wigi
 
1 blad invoegen gaat eindelijk. 2de blad nog niet.

Code:
   oWbk.Sheets(1).Range("A4:G10").Copy Destination:=ThisWorkbook.Sheets("invoegblad1").Range("A4:G10")

Het tweede in te voegen blad krijg ik niet op het samenvoegblad.

De " oWbk " bevat toch de info van de verschillende excel bestanden die aangeroepen worden in de lus ( ze komen in ieder geval op de MsgBox).

Waar zit de " clou " dan om het tweede blad mee in te voegen.
 
Waarom niet gewoon nog een copy statement?

Louter als voorbeeld:

Code:
oWbk.Sheets(1).Range("A35:G48").Copy Destination:=ThisWorkbook.Sheets("invoegblad2").Range("A35:G48")

Wigi
 
wigi,

gaf deze code eerder in alvorens bovenstaande vraag te stellen

Code:
 oWbk.Sheets(1).Range("A4:G10").Copy Destination:=ThisWorkbook.Sheets("invoegblad1").Range("A4:G10")
       oWbk.Sheets(1).Range("A4:G10").Copy Destination:=ThisWorkbook.Sheets("invoegblad2").Range("A4:G10")

dit geeft als resultaat dat dezelfde gegevens uit het tweede invoegblad op het verzamelblad tabblad 1 en tabblad2 komen te staan.

De " oWbk " is telkens een verschillend excel- file uit eenzelfde map.
Dus moet er daar dan niets veranderen ???
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan