Lier une cellule entre 2 classeurs en vba [Résolu/Fermé]

Signaler
Messages postés
9
Date d'inscription
samedi 15 janvier 2011
Statut
Membre
Dernière intervention
6 février 2011
-
Messages postés
9
Date d'inscription
samedi 15 janvier 2011
Statut
Membre
Dernière intervention
6 février 2011
-
Bonjour,


Voilà, je suis très très nul en vba mais je voudrais un code me permettant de copier une cellule d'un classeur vers un autre sachant que mon premier classeur est un classeur modèle sur lequel j'enregistre sous. C'est à partir du nouveau fichier enregistrer sous que je voudrais copier une cellule (B14) de la feuille contrat vers mon classeur modèle sur la feuille comp en cellule (A1)

En vous remerciant d'avance


10 réponses

Messages postés
8700
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 128
Bonjour,
Primo, un titre du genre ...
Plus de 4 jours que je cherche sur internet n'incite pas à ouvrir ton topic.
2°) Ta question concerne le VBA. Cela aurait été plus explicite dans ton titre.
3°) finalement, pour ta question, si tu viens de modifier le nom de ton classeur cela me semble très difficile de le retrouver, à moins que le nom du classeur sauver "sous.." soit toujours le même je ne vois pas de solution.
Explique un peu mieux.
Tu sauve "sous..." quel nom ?
A+
Messages postés
9
Date d'inscription
samedi 15 janvier 2011
Statut
Membre
Dernière intervention
6 février 2011

Merci beaucoup mais c'est la première fois que je viens sur ce forum et comme je te le disais je suis archi nulle en VBA. Donc pour répondre à ta question je sauve sous avec des noms différents puisque c'est un modèle de facture

Voila j'espère avoir été clair

a+ j'espère
Messages postés
8700
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 128
Si ce sont des factures je suppose que tu sauve avec un nom spécifique du genre "Durand 01-01-2011.xls" ?
Si oui..
Dim Chemin as String, Facture As String  
    'Exemple  
    Chemin = "C:\MesClients\"  
    Facture = "Durand 01-01-2001.xls"  
    Workbooks(Chemin & Facture).Open  
    Sheets("comp").Range("A1").Value =  Workbooks(Facture).Sheets("Contrat").Range("B14") 
     Workbooks(Chemin & Facture).Close 

Déjà de quoi t'avancer..
A+

L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
Ça doit se passer sur le forum pour que tous puisse y participer ou en profiter.
Messages postés
9
Date d'inscription
samedi 15 janvier 2011
Statut
Membre
Dernière intervention
6 février 2011

Merci pour ta réponse, mais ce code ne fonctionne pas. Il bug
Le message d'erreur est "erreur d'exécution "9" l'indice n'appartient pas à l'exécution
donc comme je n'y comprend rien je ne suis pas capable d'identifier le problème
Messages postés
8700
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 128
Boouuuuf, faut évidement mettre les noms en fonction de ton contexte.
Sur quel ligne ça "Bug"
Messages postés
9
Date d'inscription
samedi 15 janvier 2011
Statut
Membre
Dernière intervention
6 février 2011

Quand je te dis que je suis vraiment nulle c'est que je le suis.
J'ai changé tous les noms de mes classeurs, j'ai mis les mêmes noms que ceux que tu as mis en exemple pour essayer de comprendre le fonctionnement mais j'ai toujours un bug sur cette ligne Workbooks(Chemin & Facture).Open Par contre j'ai une question qui va certainement de paraitre débile mais qui pour moi n'est pas évidente. Quand tu notes chemin c'est le chemin d'accès complet qu'il faut mettre?
Merci et arme toi de patiente parce que je vais être un boulet. bien sur si tu en as marre je comprendrais que tu laisses tomber
Messages postés
8700
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 128
Bof non, avant de savoir ont est évidemment un "boulet"
sur la ligne... Chemin = ... bien entendu tu dois mettre le VRAI NOM DU CHEMIN (celui qui est renseigner sur l'explorateur de fichiers quand tu va dans le répertoire où sont tes classeurs clients. et tu dois le terminer par \ (slasch inverse)
Et pour Fichier = c'est la même chose, tu dois mettre le VRAI NOM DE TON CLASSEUR
Messages postés
9
Date d'inscription
samedi 15 janvier 2011
Statut
Membre
Dernière intervention
6 février 2011

Merci c'est super sympa, mais j'ai toujours le même message d'erreur. J'ai essayé pas mal de chose comme réouvrir mon fichier facture après avoir "enregistrer sous" parce que je pense qu'il se referme dès que j'enregistre sous mais rien n'y fait. Par contre je vais essayer de t'expliquer exactement mon programme .

J'ai donc un fichier "facture" qui me sers de modèle. Dès que j'ouvre ce fichier, j'ai mis en automatique "enregistrer sous". je rentre le nom du client ainsi que la date. Jusque là tout va bien sauf qu'il y a un compteur pour le numéro de facture et c'est là qu'est le problème. Il ne m'enregistre pas mon numéro de facture et lorsque je réouvre mon fichier modèle de facture le compteur reste au même numéro. Donc si tu as une autre solution

Je te remercie d'avance
Messages postés
8700
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 128
Bien évidement que tu n'a pas la mémorisation du N° puisque tu n'a plus le classeur Modèle dés le départ.
Ce qu'il faudrait faire..
1°) Supprimer la macro Sauve sous...
2°) Remplir le classeur Modèle avec le libellé de la facture.
3°) Quand la facture est prête, ne pas employer Sauve sous.. SaveAs mais sauver le classeur Modèle avec SaveCopyAs.
3°) Effacer toute les données dans le classeur (qui est toujours Modèle) sauf le N° de facture et sauver le classeur Modèle.
A+
Messages postés
9
Date d'inscription
samedi 15 janvier 2011
Statut
Membre
Dernière intervention
6 février 2011

Super un grand merci ça marche

a+