Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
714 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  pb entre deux classeurs

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

pb entre deux classeurs

n°1467451
quentinbac​h
Posté le 30-10-2006 à 14:18:37  profilanswer
 

Bonjour,
 
J'ai un gros probleme, j'ai realise un programme pour mettre a jour d'autres classeurs excel. Ce programme demande a l'utilisateur d'aller chercher le fichier a mettre a jour (car je ne connais pas forcement son nom, et encore moins son adresse); apres ouverture de ce fichier, le prog supprime les anciennes données pour ensuite les remplacer. Le programme doit donc naviguer entre les deux classeurs pour copier/coller les infos mises a jour. Le probleme vient lors du retour sur le classeur a mettre a jour, je ne connais pas son nom, et donc je ne sais pas comment l'appeller. Voici mon code :
 
'ouverture du fichier a mettre a jour
MsgBox "veuillez indiquer le chemin du fichier pour mise à jour"
Application.Workbooks.Open Application.GetOpenFilename()
 
    'suppression des anciennes donnees
    Sheets("Export MSP" ).Select
    Range("B10" ).Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.ClearContents
 
    'retour sur le fichier ou la macro est situé (je connais son nom a celui ci)
    Windows("maj bordereaux.xls" ).Activate
    Range("A2" ).Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
 
    'retour sur le 2eme classeur pour mise a jour (c la le probleme)
    'Windows("2eme classeur" ).Activate
    'Range("B10" ).Select
    'ActiveSheet.Paste
 
Si vous avez une petite solution ca m'arrangerait bien, j'ai essayé pas mal de truc, notamment la suppression de mon classeur où la macro est présente (tactique de la feinte pour kil retourne tout seul sur mon 2eme classeur héhé) mais ca coupe aussi ma macro (remarque ca parait normal ...) donc je suis un peu a court d'idees.


Message édité par quentinbach le 30-10-2006 à 14:24:51
mood
Publicité
Posté le 30-10-2006 à 14:18:37  profilanswer
 

n°1467470
quentinbac​h
Posté le 30-10-2006 à 14:38:15  profilanswer
 

Bon j'ai trouvé la solution désolé si vous vous etes penché dessus (meme si j'ai pas trop l'impression d'avoir motivé qui que ce soit), en faite je feinte (encore !!!) en cachant la fenetre lol  
    ActiveWindow.Visible = False

n°1467495
aprilthe5i​th
Posté le 30-10-2006 à 14:56:21  profilanswer
 

Voici le code :
 
'Création des variables correspondant à chaque classeur et chaque feuille :
 
dim Wbk1 as workbook, Wbk2 as workbook
dim Wsht1 as worksheet, Wsht2 as worksheet
 
'Création inputbox pour récupérer le chemin du classeur inconnu
Dim Chemin As String
NomClasseur = InputBox("Veuillez saisir le chemin complet du classeur à mettre à jour :", "MAJ" )
 
'Définition du classeur 1 : fichier inconnu
Set Wbk1 = Workbooks.Open(Filename:=Chemin)
'Définition Feuille du classeur 1 (ici la feuille1)
Set Wsht1 = Wbk1.Worksheets(1)
 
'Définition du classeur 2 (celui dont tu connais le chemin : mets le à la place de blabla)
Set Wbk2 = Workbooks.Open(Filename:=blabla)
'Définition Feuille du classeur 2 (ici Feuille 2)
Set Wsht2 = Wbk2.Worksheets(1)
 
'Puis ton code (les "Select" sont inutiles ainsi que les "Activate" ) avec d'éventuelles modifications
 
'suppression des anciennes donnees
'ici je vide la cellule "B10" du classeur à mettre à jour, modifie, si ce n'est pas ce que tu veux faire
wsht1.cells(10,2).Clear
 
'Copie de la cellule du fichier à jour + collage sur la bonne cellule de l'autre classeur (celui à mettre à jour)
wsht2.cells(1,2).Copy wsht1.cells(10,2)

n°1467584
quentinbac​h
Posté le 30-10-2006 à 16:29:13  profilanswer
 

Ouah merci pour tout ca ca marche nickel, il me reste plus qu'a modifier mes "activates" et "select" déclarés inutiles. Bon le seul probleme c'est que mes chers collegues de boulot vont pas trop aimer car il va falloir qu'ils tapent eux meme l'adresse du fichier (ou du moins qu'il la colle).
Merci en tout cas, ca m'aide deja enormement

n°1468291
eric455
Posté le 31-10-2006 à 16:02:40  profilanswer
 

Bonjour à tous
Bonjour quentinbach
 
Après :  
Application.Workbooks.Open Application.GetOpenFilename()
 
essai ce code :
monfic = ActiveWorkbook.FullName
 
et ensuite tu récupère le nom de ton fichier avec le chemin dans monfic
 
ou :
monfic= ActiveWorkbook.Name
 
et ensuite tu récupère que le nom du fichier dans monfic
 
ce sera plus sympa pour tes collègues
 
A+


---------------
Eric

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  pb entre deux classeurs

 

Sujets relatifs
BESOIN D'AIDE SVP - Contenu textbox vers cellules plusieurs classeurscode a peufiner juste un petit bug....macro qui compare 2 classeurs
Classeurs Excel avec macros dans WordManipuler plusieurs classeurs excel
Masquer UserForm entre les classeurs[VB] conserver une le contenu d'un variable ds diff classeurs
Plus de sujets relatifs à : pb entre deux classeurs


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR