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

Kolom invoegen in meerdere bestanden

Status
Niet open voor verdere reacties.

Humadgen

Gebruiker
Lid geworden
16 aug 2006
Berichten
251
Hoi,

Situatie 1: Als ik een werkboek heb met een daarin 1 werkblad \blad1/ en ik wil een kolom invoegen tussen kolommen C en D , dan is dat eenvoudig. (Selecteer kolom D en kies invoegen kolom)

Situatie 2: Als ik een werkboek heb met daarin 3 werkbladen \blad1/\blad2/\blad3/ en ik wil een kolom invoegen tussen kolommen C en D, dan is dat ook eenvoudig, doordat ik dan alle drie de bladen selecteer met de "shift" toets en vervolgens Selecteer ik kolom D en kies invoegen Kolom.

Maar nu het volgende probleem :confused:
Situatie 3: Ik heb 16 werkboeken (A.xls, B.xls, C.xls, D.xls, E.xls, F.xls, ....etc ) waarin bij ieder werkboek 1 werkblad zit \blad1/
Is er een mogelijkheid om kolom D in te voegen in 1 werkboek (waarin ik op dat moment zit te werken), maar waarbij ik op hetzelfde moment, ook in de andere 15 werkboeken die kolom laat toevoegen. (Zodat de layout 100% hetzelfde blijft.)
Bovendien zou ik de "kolom header" in een keer in alle werkboeken willen kunnen bepalen. (Precies zoals ik in situatie 2 zou kunnen doen.)

Aanvullende informatie die e.e.a. misschien nog lastiger maken, maar in de praktijk wel voorkomen:
1.) Het kan zijn dat ik in A.xls zit te werken, maar iemand anders in C.xls.
2.) De werkboeken zijn allemaal "shared"
3.) De LAN drive, waarop de werkboeken staan (mocht dat nog helpen) is P:\operations\osu

En dan de wellicht moeilijkste extra.:rolleyes:
4.) In sommige kolommen staat (in iedere regel die gebruikt wordt) een "validation dropdown box". Soms moet de kolom die wordt toegevoegd ook die "validation dropdown boxen" krijgen.

(Bij de situatie met 1 werkboek en 1 werksheet wordt gewoon de kolom ge- "copied" en vervolgens - "insert copied cells" gekozen en de nieuwe kolom heeft dan de validation dropdow boxen dus is het geen probleem.)

Ik ben benieuwd of iemand hier een idee / oplossing voor heeft.:eek:
Grtnx
Humadgen
 
Laatst bewerkt:
Afgezien van de niet voor hand liggende wens de opbouw en layout van een bestand tijdens het werk te wijzigen:
Dit kan met de volgende macro als alle werkboeken geladen zijn:

Code:
Sub invoegen()
  For Each wb In Workbooks
    wb.Sheets(1).Columns(4).Insert
    wb.sheets(1).cells(1,4)="nieuwe kop"
  Next
End Sub
 
Laatst bewerkt:
Hoi SNB

Dit is inderdaad een oplossing als alle werkboeken geopend zijn en ik altijd kolom D wil invoegen. :thumb:
Maar ik denk dat in mijn vraagstelling niet duidelijk bleek dat het niet altijd om kolom D gaat. :o
Probleem in dit stukje code is wel dat er niet toevallig nog een paar andere werkboeken open mogen staan, want dan krijgen ook die, de extra kop)

Maar waar ik eigenlijk naar op zoek ben is code die de werkboeken op het LAN (ongeopend of geopend) vindt en dan de kolom toevoegd. (ik zou verwachten dat de code dan de hele "root" verwijzing + bestandsnamen van ieder werkboek in zich zou moeten krijgen.) ;)

Hierbij komt dan nog dat de code me eigenlijk moet vragen welke kolom moet worden ingevoegd. (want dat kan op iedere plek zijn):shocked:
en
Daarnaast zou ik ook graag willen zien dat de code me vraagt wat de text van de cel moet zijn die als kop hoofd moet worden weggezet, want dat kan ook varieren.:shocked:

Alvast bedankt voor de eerste aanzet, want doet inderdaad wat je zegt, maar is nog niet helemaal wat ik nodig heb.

Grtnx
Humadgen
 
Hoe 'weet' de macro welke bestanden wel en welke niet aangepast moeten worden ?

Heb je als eens gezocht op dit forum, of in de hulpfunktie van de VBEditor, naar inputbox ?
 
Hoi SNB

Bedankt voor het meedenken.

De inputbox sec., kom ik denk ik al wel uit, daar ben ik al mee bezig, maar dat heeft eigenlijk pas echt zin als het eerste gedeelte van de macro gaat werken, en eerlijk gezegd weet ik niet of dat gaat. Misschien zoek ik wel iets wat niet in de VBA code binnen EXCEL can worden geprogrammeerd.

Je vraag:

Hoe 'weet' de macro welke bestanden wel en welke niet aangepast moeten worden ?

is namelijk het grootste probleem en ik weet ook niet of binnen EXCEL's VBA dit kan worden opgelost. Want de Macro zal uiteindelijk door Windows heen moeten gaan zoeken naar de root :
P:\operations\osu\A.xls, P:\operations\osu\B.xls, P:\operations\osu\C.xls.....etc
en dan de kolom moeten aanpassen.

Misschien moet dat op een andere manier, maar ik weet niet hoe, dus als EXCEL VBA daar niet geschikt voor is, maar als het op een andere manier moet dan verneem ik dat ook graag?

Thanks
Humadgen
 
Vooraf: wat jij wil kan met VBA in Excel.
Kijk in de hulp van de VBEditor eens bij dir of getfile
 
Humadgen, volgende macro (snb herinnert hem zich misschien nog) maakt een lijst op je werkblad met alle bestanden in een bepaalde directory. Dan kan je met een loop alle bestanden in die lijst bewerken. Bouw een controle in die kijkt of een bestand geopend is ( indien niet dan openen, anders wijzigingen doorvoeren). Dan kan je inputboxen inbouwen die je naar de kolom en kolomkop vragen. Misschien kan je hiermee verder.
Code:
Sub tst()
  c0 = ""
  With CreateObject("scripting.filesystemobject").GetFolder(InputBox("Welke directory wenst U", "FileSearch", "D:\Mijn documenten\"))
    For Each fl In .Files
        If Right(fl.Name, 4) = ".xls" Then c0 = c0 & fl.Name & "|"
    Next
    [A:A].ClearContents
    [A1].Resize(UBound(Split(c0, "|"))) = WorksheetFunction.Transpose(Split(c0, "|"))
  End With
End Sub

Mvg

Rudi
 
Laatst bewerkt:
Hoi Warme Bakkertje en SNB

Allebei reeds bedankt voor jullie input. Ik ga er in het weekend verder mee spelen, (want nu ontbreekt me even de tijd.)
Ik verwacht dat ik nog wel met een paar vragen kom, want ik ben boeken aan het lezen om meer te weten over VBA. Als ik de oplossingen terug lees dan snap ik meestel al wel wat het is dat de code doet, maar ik ben nog net niet zover dat ik ze helemaal zelf in elkaar kan bouwen. (zeker niet als het wat complexere codes zijn.)

Additionale informatie is altijd al wel welkom, maar mocht niemand nog meer info bij dit onderwerp zetten, dan zien jullie vats nog wel aanvullende vragen verschijnen of wel sluit ik de vraag.

Grtnx
Humadgen
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan