Exécuter macros - identifier variables dans excel intégré (OLEobject)

Nico93

XLDnaute Nouveau
Bonjour,

Je ne suis pas ancien dans le monde de la VBA mais il se trouve que je me suis lancé dans un projet assez simple qui aujourd'hui devient un peu copmpliqué à finaliser. Je me permets donc de vous solliciter pour obtenir un peu d'aide.

Le projet était le suivant :
- intégrer un template excel à l'intérieur des formats de RDV par défaut du calendrier Outlook, sous la forme d'une fiche de renseignements à remplir lors de la prise des RDV téléphoniques.
- faire en sorte que ces fiches rappatrient automatiquement les données de l'utilisateur, stockées dans une BDD excel, lorsque l'on tape son nom. Cette partie est OK mais il a déjà fallu ruser pour utiliser la fonction rechercheV correctement (en fait j'ai fait des équivalences de noms de zones).
- mettre en place un mécanisme de vidage via bouton vers une autre feuille de la BDD, et un système d'incrémentation à mesure que les informations de la fiche dans le planning sont complétées.

C'est cette partie qui me pose problème. Autant pour les fonctionnalités liées à Excel j'ai pu trouver des contournement, autant pour la macro c'est nettement plus compliqué, à mon niveau en tout cas.

En gros, quand j'ouvre l'objet incrusté dans le template, il ne reconnait pas les autre feuilles excel, donc telworkbook.activate ne fonctionne pas, activesheet et activeworkbook ne fonctionne pas, et le nom du fichier (Feuille de calcul dans message sans titre) ne fonctionne pas non plus. Donc je ne peux pas déclarer de variables liées au fichier incrusté.

Voilà la seule interaction entre les deux feuilles que j'ai réussi à faire (et encore parfois ça me marche pas) :

Code:
Sub create()
Range("C8:C10").Copy
Range("A35:C35").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=True
Range("E8:E10").Copy
Range("D35:F35").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=True
Range("C4").Copy
Range("G35").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=True
Range("E4").Copy
Range("H35").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=True
Range("C14:C16").Copy
Range("I35:K35").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=True
Range("E15:E16").Copy
Range("L35:M35").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=True
Range("B20:B22").Copy
Range("N35:P35").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=True
Range("C20:E20").Copy
Range("Q35:S35").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
Range("B23").Copy
Range("T35").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
Range("B26").Copy
Range("U35").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
Range("B27").Copy
Range("V35").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
Range("A35:V35").Copy Workbooks("BASE.xlsx").Sheets("OP").Cells(65535, 1).End(xlUp)(2)
'Windows("TEST2.xlsx").Activate
'Sheets("Feuil1").Cells(65535, 1).End(xlUp)(2).Select
'Activesheet.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
End Sub

Les trois dernières lignes c'était des bouts de mon code que j'avais testé sur deux autres fichiers de test. Ca marchait parfaitement entre deux fichiers Excel classiques, mais là avec le feuillet incrusté ça bloque direct...

Est-ce que vous pouvez m'aider svp? Je vous mets en PJ mes deux fichiers test qui marchaient parfaitement, ainsi que le template final (qui est encore en xlsx mais que j'ai réussi à convertir en xlsm dans une version de test, pour rappel ici il s'agit d'un .docx mais en réalité il sera au final sur un format outlook) sur lequel je devrai transposer le code...

Merci d'avance....

Nico
 

Pièces jointes

  • Copie de TEST1.xlsm
    26 KB · Affichages: 34
  • Copie de TEST2.xlsx
    35.3 KB · Affichages: 34
  • Copie de TEST1.xlsm
    26 KB · Affichages: 41
  • Copie de TEST2.xlsx
    35.3 KB · Affichages: 42
  • Copie de TEST1.xlsm
    26 KB · Affichages: 46
  • Copie de TEST2.xlsx
    35.3 KB · Affichages: 37
  • TEMPLATE FICHES.docx
    121.4 KB · Affichages: 33
Dernière édition:

Nico93

XLDnaute Nouveau
Re : [XL 2010] Exécuter macros - identifier variables dans excel intégré à un .doc ou

Bonjour,

Alors après plus de recherche, j'ai compris qu'il s'agissait de classes spéciales, OLEobject ou je ne sais quoi. Je vais faire quelques tests avec des exemples que j'ai vu ça et là, même si ça ne correspond pas tout à fait à ma situation.
Si un âme charitable voulait bien m'aider à avancer ça serait sympa. Merci d'avance.
 

Discussions similaires

Réponses
2
Affichages
108
Réponses
5
Affichages
98

Statistiques des forums

Discussions
312 089
Messages
2 085 206
Membres
102 819
dernier inscrit
Michew13