Methode la plus rapide de recopiage de ligne [VBA] - VB/VBA/VBS - Programmation
Marsh Posté le 09-06-2006 à 18:04:59
fichier A ouvert
Private Sub Workbook_Open()
Dim MyStr As String
MyStr = Workbooks("fichier A.xls" ).Path
If Right(MyStr, 1) <> "\" Then MyStr = MyStr & "\"
Workbooks("fichier A.xls" ).SaveCopyAs MyStr & "fichier_Copy.xls"
Workbooks.Open MyStr & "fichier_Copy.xls"
Workbooks("fichier_Copy.xls" ).Activate
End sub
Que fait ce code ? Le fichier A est copié à l'identique dans le même répertoire en fichier_copy, fichier_est mis en premier plan, il est donc le fichier de travail. Attention, fichier A est toujours ouvert.
fichier_copy et fichier A contiennent et exécute les mêmes macros et les mêmes formules il convient donc de tester le fichier actif pour l'exécution des macros et formules du style
If ActiveWorkbooks("fichier A" ) then ou If activeWorbooks("fichier_copy" ) then
Marsh Posté le 09-06-2006 à 18:24:15
J'ai moi même ce cas avec un fichier de travail mis à jour par l'utilisateur et un fichier modèle de base les feuilles de ces fichiers servent de controle de validation et une feuille de parametre (compteur initial entre autre)
Lorsque l'on enregistre le fichier de travail, je mets a jour les paramètres du fichier modèle de base et je le ferme.
Cela marche très bien SAUF si l'utilisateur fait enregistré sous.. car à ce moment je ne maitrise plus le nom du fichier de travail pour mes tests macro
question 1: y a-t'il une sous-routine "après enregistré sous..." dans laquelle je pourrais récupéré le nom du fichier actif ?
question 2: comment avoir les nom de fichier en paramètre et comment écrire des instructions du style
MyStr = Workbooks(Paramètre).Path, en bref remplacer les "nomfichier" par paramètre qu'il conviendrait de charger de manière adéquat.
C'est long comme explication excusez-moi mais je butte.
Merci pour votre aide.
Marsh Posté le 09-06-2006 à 16:25:55
Hello,
je bosse sur un projet en ce moment ou je dois recopier des lignes entieres d'un fichier Excel A vers un autre fichier B.
En fait, je voudrais connaitre la méthode la plus rapide pour réaliser cette opération car moi je passe par la déclaration d'un tableau qui stocke toutes les lignes qui m'intéresse du fichier A, puis je le parcourt et j'initialise chaque cellule du fichier B par celle du tableau.
Voila donc je me demandais si vous pensiez qu'il y avait des méthodes plus rapides.
Merci