Renolerigolo
Messages postés1Date d'inscriptionmardi 22 juin 2004StatutMembreDernière intervention22 juin 2004
-
22 juin 2004 à 16:51
mebilo
Messages postés8Date d'inscriptionvendredi 22 août 2003StatutMembreDernière intervention23 août 2004
-
22 juin 2004 à 22:28
j'ai deja posté ce mail dans "g besoin d'aide" ms il a disparu!!:-(
Bonjour,
J'ai un petit souci avec une macro excel permettant de recopier des cellules d'un workbook vers un autre.
Pour ceci j'ai besoin d'affecter chaque workbook a une variable, je fais :
Dim cotation As Excel.Worksheet
Dim master As Excel.Worksheet
Set cotation = ActiveWorksheet
ChDir "C:\Home\fabre_r\Worksheet"
Workbooks.Open Filename:="C:\Home\fabre_r\Worksheet\TECHPUB2004.xls"
Sheets(master).Select
Range("c11").Select
Set master = ActiveWorksheet
Ceci est destiné a etre dans une macro , mais je n'arrive pas a affecter le workbook qui sera ouvert quand je lancerais la macro a partir d'un bouton a mes variables "cotation" et "master"
En fait le probleme est "Comment affecter le workbook ouvert (qui peut avoir differents noms) a ma variable "cotation" "
Cette macro sera affectée a un bouton situé dans ledit workbook
Comme vous pouvez le voir je débute merci de votre aide...
mebilo
Messages postés8Date d'inscriptionvendredi 22 août 2003StatutMembreDernière intervention23 août 2004 22 juin 2004 à 22:28
Je n'ai pas bien compris ce que tu essaies de faire mais le principe de la programmation VBA sous Excel est le suivant :
- il faut distinguer la collection d'objets et l'objet en lui-même : une collection contient plusieurs objets (comme Workbooks = collection contenant plusieurs Worksheets), un objet est par ex. WorkSheet (le 'S' désigne souvent la collection, sans le 'S' désignant l'objet)
- Excel utilise la base 1 : ce qui signifie que l'on pointe vers le 1er objet avec l'indice 1.
Supposons que je veux copier depuis un classeur (workbooks) OUVERT (il doit être ouvert et visible sous mes yeux) :
Nom du Workbooks OUVERT : N'importe quel nom
Feuille : Feuil1
Cellule que je veux copier : A1 (1,1)
...vers mon nouveau classeur de :
Nom du nouveau fichier : Cotation
Feuille : Feuil2
Cellule de destination : B3 (2,3)
...alors j'écris le code de mon bouton "cmd_Test" tel que :
<!---------------- code ------------->
'Je force la déclaration des variables
Option Explicit
'Déclaration Variables XLS
Private MonApp As Excel.Application
Private MaFeuille As Excel.Worksheet
Private Sub cmd_Test_Click()
'Je déclare mes paramètres
Dim monChemin as String
Dim monFichier as String
'Je paramètre mes variables
monChemin = "C:\Home\fabre_r\Worksheet"
monFichier = "TechPub2004"
'J'instancie l'application Excel
Set MonApp = New Excel.Application
'Le rendre visible (masqué par défaut)
MonApp.Visible = True
'Je force Excel à utiliser le repère du type [Coordonnées XY]
MonApp.ReferenceStyle = xlR1C1
'J'ajoute un nouveau classeur
MonApp.Workbooks.Add
'Je pointe vers la première feuille de mon nouveau classeur
Set MaFeuille = MonApp.Worksheets("Feuil2")
'Je libère la mémoire allouée
Set MaFeuille = Nothing
'Je quitte Excel
MonApp.Quit
'Je libère la mémoire
Set MonApp = Nothing
End Sub
<!---------------- fin du code -------------!>
Voilà, cela devrait t'aider à mieux comprendre.
Je n'ai pas la prétention de t'apprendre de quoi que ce soit, y'en aurait certainement d'autres qui savent mieux faire que moi.