Des variables et des boucles... : aide au développement.

Fouiny

XLDnaute Nouveau
Bonjour à tous!

Dans le cadre de mon travail, je tente d'automatiser la mise à jour d'un fichier (que je ne peux pas joindre) comprenant une quarantaine d'onglets.

La mise à jour du fichier doit se faire via des extractions ayant toujours le même nom. Les liaisons étant déjà existantes je n'ai qu'a mettre à jour les liaisons.

J'ai rédigé la macro suivante pour ce faire :

Code:
Dim source As string

source = ActiveWorkbook.Path & "\Extract\data.xls"

ActiveWorkbook.UpdateLink Name:=source, Type:=xlExcelLinks

Mon soucis est le suivant, en fonction de la feuille la source des liaisons diffère. J'ai essayé de rédiger la macro mais dois bien avouer qu'en tant que grand débutant ça fait beaucoup... En gros j'en suis arrivé à :

Code:
Dim VarA, VarB, VarC As Worksheet
Dim Source As String

Set VarA = ThisWorkbook.Sheets("Feuil1")
Set VarB = ThisWorkbook.Sheets("Feuil2")
Set VarC = ThisWorkbook.Sheets("Feuil3")


Pour VarA 
      source = ActiveWorkbook.Path & "\Extract\dataA.xls"
      ActiveWorkbook.UpdateLink Name:=source, Type:=xlExcelLinks

Pour VarB 
      source = ActiveWorkbook.Path & "\Extract\dataB.xls"
      ActiveWorkbook.UpdateLink Name:=source, Type:=xlExcelLinks

Pour VarC 
      source = ActiveWorkbook.Path & "\Extract\dataC.xls"
      ActiveWorkbook.UpdateLink Name:=source, Type:=xlExcelLinks

Mon problème est pour coder les différents "Pour VarX"... J'ai pensé à utiliser Case mais de ce que j'ai compris Case oblige a un choix de l'utilisateur... et je ne pense pas pouvoir utiliser une boucle vu que je n'ai pas de conditions...

Autre question : tel que rédigé la mise à jour ne s'effectue que sur les valeurs des variable VarX ?

Question subsidiaire : est-il possible qu'une variable soit égale à plusieurs feuilles ?

En espérant avoir été clair, je vous remercie par avance de vos réponses.

Fouiny,
 

Gorfael

XLDnaute Barbatruc
Re : Des variables et des boucles... : aide au développement.

Salut Fouiny et le forum
Code:
Dim VarX As Worksheet
Dim Source As String
Dim x As Integer

For x = 1 To 3
    Set VarX = ThisWorkbook.Sheets("Feuil" & x)
    Source = ActiveWorkbook.Path & "\Extract\data" & Chr(x + 64) & "xls"
    ActiveWorkbook.UpdateLink Name:=Source, Type:=xlExcelLinks
    '.............................
Next x
Comme tu le vois, on peut faire plein de chose avec des boucles et des variables. Mais l'extrait de ton code ne permet que donner une idée de comment faire, pas une solution ! Plus tu es dans le vague, moins on peut réellement te fournir un code qui sera une solution à ton problème. Et comme ton code n'utilise pas les feuilles que tu as déclarées...
A+
PS "Dim A, B, C as Worksheet" ne déclare que C en feuille, A et B étant en Variant. La bonne déclaration sera "Dim A as Worksheet, B as Worksheet, C as Worksheet" pour déclarer les 3 en feuille
 

Fouiny

XLDnaute Nouveau
Re : Des variables et des boucles... : aide au développement.

Bonsoir Gorfael, Bonsoir Tempusfugit,

Tout d'abords, merci pour vos réponses.

Je pense avoir compris le raisonnement Gorfael, je vais tacher de coder sur un fichier exemple et je vous tiendrai au courant!

Merci encore de m'avoir apporté vos lumières,

Fouiny
 

TempusFugit

XLDnaute Impliqué
Re : Des variables et des boucles... : aide au développement.

Bonjour

PS "Dim A, B, C as Worksheet" ne déclare que C en feuille, A et B étant en Variant. La bonne déclaration sera "Dim A as Worksheet, B as Worksheet, C as Worksheet" pour déclarer les 3 en feuille

Deux fois valent mieux qu'une (lol)

PS: Il manque un point
Source = ActiveWorkbook.Path & "\Extract\data" & Chr(x + 64) & ".xls"
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 325
Messages
2 087 304
Membres
103 513
dernier inscrit
adel.01.01.80.19