Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…