[Déplacé VB6 --> VBA] VB excel 2003

leure007 Messages postés 19 Date d'inscription lundi 24 août 2009 Statut Membre Dernière intervention 25 janvier 2010 - 9 sept. 2009 à 15:08
leure007 Messages postés 19 Date d'inscription lundi 24 août 2009 Statut Membre Dernière intervention 25 janvier 2010 - 10 sept. 2009 à 11:16
Bonjour,

Pour une meilleure compréhension, je reformule une demande faite antérieurement. Je désire programmer en VB la macro suivante:

cellule A1: cliquer pour ouvrir lien hypertexte vers fichier ...a.xls
cellule A3: copier
cellule A5: coller valeur + positionner le curseur à la fin de la barre de formule + enter + copie incrementée

fermer fichier ...a.xls

cellule B1: cliquer pour ouvrir lien hypertexte vers fichier ...b.xls
cellule B3: copier
cellule B5: coller valeur + positionner le curseur à la fin de la barre de formule + enter + copie incrementée

fermer fichier ...b.xls

cellule C1: cliquer pour ouvrir lien hypertexte vers fichier ...c.xls
cellule C3: copier
cellule C5: coller valeur + positionner le curseur à la fin de la barre de formule + enter + copie incrementée

fermer fichier ...c.xls

etc: répéter les opérations ci-dessus 240 fois

J'espère de cette manière être plus précis ... ? ...
Can anyone please help?

2 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
9 sept. 2009 à 20:42
Salut
Et quand tu enregistres une macro pendant que tu fais la manip à la main, ça donne quoi ?
Peut-être auras-tu un début.

Il faudra être encore plus clair :
"cellule B1: cliquer pour ouvrir lien hypertexte vers fichier ...b.xls"
Bon, lancer un lien hypertexte, ça doit être facile, mais que va t-il se passer ?
Tu vas ouvrir un nouveau XLS.
Que vas-tu en faire ?
"Cellule B1" : C'est celle de ta feuille d'origine ou celle du fichier que tu viens d'ouvrir ?

"copie incrémentée" : définition (ça ne me dit rien)

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
leure007 Messages postés 19 Date d'inscription lundi 24 août 2009 Statut Membre Dernière intervention 25 janvier 2010
10 sept. 2009 à 11:16
Salut Jack,

Suis heureux de pouvoir t'être utile. La copie incrémentée est une fonction magique d'excel. Explication sur le lien suivant:
copie incrementee.

L'enregistrement de ma macro à la main donne ceci pour les deux premières colonnes (A et B) du fichier "nom fichier.xls" :

‘Pour les cellules de la colA

Range("A1").Select
Workbooks.Open Filename:= _
" ….lien… XLS "
ActiveWindow.Visible = False
Windows("…..XLS").Visible = True
Windows( "nom fichier.xls" ).Activate
Range("A3").Select
Selection.Copy
Range("A5").Select
Selection.PasteSpecial Paste: =xlPasteValues, Operation:= xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-1], …..XL S !C1:C2,2,FALSE)"
Range("A5").Select
Selection.Copy
Application.CutCopyMode = False
Selection.AutoFill Destination:= Range("A5:A500")
Range("A5:A500").Select
Windows( "...XLS" ).Activate
ActiveWindow.Close

[b][i]
‘Idem pour cellules colB, soit : /i/b

Range("B1").Select
Workbooks.Open Filename: = _
"….lien… XLS"
ActiveWindow.Visible = False
Windows( "…..XLS" ).Visible = True
Windows("nom fichier.xls").Activate
Range("B3").Select
Selection.Copy
Range("B5").Select
Selection.PasteSpecial Paste:= xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-2], …..XLS! C1:C2,2,FALSE)"
Range("B3").Select
Selection.Copy
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range("B3:B500")
Range("B3:B500").Select
Windows("...XLS").Activate
ActiveWindow.Close


Commentaires pour répondre aux questions posées:
- les fichiers ouverts avec le lien ("…..XLS")) servent à faire la liaison directement et sont refermés/changés dès que l'on change de colonne. Je devine la question: pourquoi ne pas faire une mise à jour des liaisons de toutes les colonnes en même temps? A cause d'un problème de format. Les fichiers "…..XLS" n'ont pas le même format que le fichier "nom fichier.xls". Je ne peux rien y changer pour une raison trop longue à expliquer ici.
- les cellules (A1/B1 etc...) sont dans le fichier "nom fichier.xls" dans lequel sont ouverts/fermés les fichiers "…..XLS"
0
Rejoignez-nous