GetObject exemple -suite

  • Initiateur de la discussion albert
  • Date de début
A

albert

Guest
bonsoir à tous , bonsoir zon, bonsoir forum,

ce long WE. a finalement pris fin et je me suis remis à vba... avec plaisir j'ai découvert du code :

http://www.excel-downloads.com/html/French/forum/messages/1_33345_33345.htm
donc...
Je remplace Fichier
Set ClasseurRepresentants = GetObject(Fichier)
Par l’adresse
Set ClasseurRepresentants = GetObject("C:\Representants_par_departements.xls") : la macro ouvre une fenêtre -pour chercher le dossierRepresentants_par_departements.xls
… en cliquant dessus, la macro s’exécute


...ça marche (merci zon) :))

cependant,

- je ne vois pas l’avantage du système, puisque la macro Get.zip donne le même résultat
- si l’on veut utiliser des données dans plusieurs fichiers, il faut répéter le code avec la procédure GetObject pour chaque fichier
- pourquoi égalemement le code ferme les autres fichiers, puisqu’il n’y en a pas d’autres ouverts ?


(c'est casse pieds les débutants, non???) ;-))

il n'y aurait pas un bouquin qui ferait le point sur ce type de programmation??
 
Z

zon

Guest
Bonsoir à tous,



Albert, merci de répondre, toutefois tu aurais pu resté sur le meme post:



Si j'ai bien compris tu as plusieurs fichiers à mettre à jour, Il y a juste un goto à rajouter, donc voici le code :


Sub InsertIniRep()
Dim ClasseurRepresentants As Workbook
Dim NumDepartement As String
Dim Colonne As Variant
Dim Initiales
Dim Fichier
Dim WB As Workbook
Dim Nom As String

Nom = ActiveWorkbook.Name
1'''''A MODIFER
Fichier = Application.GetOpenFilename("Excel fichiers (*.xls), *.xls")
If Fichier <> False Then
GoTo 2''''A MODIFER
Else: MsgBox "Vous n'avez pas sélectionné de fichier ", vbOKOnly, "DEMO OUVERTURE"
Exit Sub
End If
2 '''''''''A MODIFIER
Set ClasseurRepresentants = GetObject(Fichier)
Range("D4").Select
While ActiveCell.Value <> ""
NumDepartement = Left(ActiveCell.Value, 2)
On Error GoTo Erreur
Colonne = ClasseurRepresentants.Sheets("Feuil1").Range("A4:H50").Find(What:=NumDepartement, LookIn:=xlFormulas, LookAt:=xlWhole).Address
Colonne = Range(Colonne).Column
Colonne = CInt(Colonne)
Initiales = ClasseurRepresentants.Sheets("Feuil1").Cells(3, _
Colonne).Comment.Text
ActiveCell.Offset(0, -1).Range("A1").Select
ActiveCell.FormulaR1C1 = Initiales
ActiveCell.Offset(1, 1).Range("A1").Select
Wend
Set ClasseurRepresentants = Nothing
'fermeture de tous les fichiers sauf Rep_clients
For Each WB In Workbooks
If WB.Name <> Nom Then WB.Close savechanges:=False
Next WB
GoTo 1 '''''''''A MODFIER
Erreur:
MsgBox "Le fichier que vous avez selectionner ne contient pas de N° de dep", vbOKOnly
Sortie:
End Sub



Pour sortir de la procedure, il y a juste besoin de cliquer sur Annuler quand la boite Ouvrir est affichée....




A+++
 
A

albert

Guest
merci zon, c'est tout simplement fantastique...
... avec ce code exemple, je vais pouvoir m'exercer

s'cuse pour le changement de post, il n'y a pas reclassement des nouveaux messages dans excel download et je n'étais pas certain d'être lu.

cordialement

albert
 

Statistiques des forums

Discussions
312 027
Messages
2 084 767
Membres
102 658
dernier inscrit
karima