Enregistrement automatique en vba sous excel

Fermé
blackmabanza Messages postés 3 Date d'inscription vendredi 29 octobre 2010 Statut Membre Dernière intervention 30 octobre 2010 - 29 oct. 2010 à 11:52
 axelfrangi - 3 nov. 2010 à 09:06
Bonjour,

Bonjour,

j'ai besoin d'aide sur comment transferer automatiquement de données d'un fichier excel ouvert vers un autre fichier excel ouvert ou fermer.en d'autre terme si ql q'un peut me fournir un code vba qui m'enregistrer mes données de mon fichier excel journal vers mon autre fichier excel balance. merci a tous .

A voir également:

7 réponses

Essaye ceci:

'definition
Dim FichierWord As Object
Set FichierWord = CreateObject("Excel.Application")
' Création document
FichierExcel.Documents.Add
' Ecriture dans document
Worksheets("Ta Feuille").Range("A2:H66").Copy  'tu selectionne la plage de donner a copier
DocExcel.Range.PasteSpecial
FichierExcel.Visible = True
0
blackmabanza Messages postés 3 Date d'inscription vendredi 29 octobre 2010 Statut Membre Dernière intervention 30 octobre 2010
29 oct. 2010 à 12:46
merci a toi
mais mon problème est que : les donné de mon fichier journal j'aimerai q ils soit automatique enregistrer dans mon fichier balance .je peut t'envoyer les fichiers et tu verra toi même,j'en est mare de retaper la même chose plusieurs fois d' ou ma question
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 743
29 oct. 2010 à 14:26
Salut,
OK. Tu as deux classeurs Excel. Le premier s'appelle "journal.xls", le second "balance.xls". Ca va la compta, pas trop dur?
Tu souhaites que tes données saisies dans "journal" soient transférées dans "balance". Ok mais :
- classeur fermé ou ouvert, la procédure est totalement différente. Il faut donc que tu fasses un choix.
- Les données dans "journal", tu les saisi :
ou?
comment?
- ton transfert dans "balance" doit arriver sur qu'elles cellules?

Répondre à ces questions constituerait un bon point de départ pour réaliser ton appli...
0
blackmabanza Messages postés 3 Date d'inscription vendredi 29 octobre 2010 Statut Membre Dernière intervention 30 octobre 2010
30 oct. 2010 à 11:55
salut pijaku alors voici les données de mon journal.xls:
JOURNAL 2005
DATE N° FACTURE NOM CLIENT N° B.L. N° B.C. HT/HD H. T.V.A. T.V.A. T.T.C.
03/01/05 21 771 SUP.DE.CO 77 754 13 996 91 750
03/01/05 21 772 B.C.E. 8281 204 000
03/01/05 21 773 TOTAL SENEGAL 9387 393 310 170 55 831 366 001
03/01/05 21 774 C.S.S. 9393 51943 1 616 112

j aimerai que ces donnés DATE N FACTURE NOM CLIENT HT/HD HTVA TTC soient automatiquement reporter dans pour un client specifique par exemple ici la balance_BCE.xls et ce qu'il soit fermer ou ouvert :
CLIENT : C.B.A.O.

FICHE N° : 01/2009

DATE FACTURE LIBELLE HT/HD HTVA TTC


02/01/09 45192 PAYE 431 000 77 580 508 580 3 522 084
05/01/09 45193 PAYE 7 444 500 1 340 010 8 784 510 12 306 594
20/01/09 45393 PAYE 100 500 18 090 118 590 12 425 184
15/01/09 45442 PAYE 100 500 18 090 118 590 12 543 774
15/01/09 45443 PAYE 395 000 71 100 466 100 13 009 874

si vous pouvez me faire ce code vous m'aiderez énormément merci encore pour tout
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 743
2 nov. 2010 à 09:32
Bonjour,
Avec les infos que tu m'as donné, j'ai commencé le taf. regardes les 2 fichiers joints :
journal
balance
1- enregistres les 2 fichiers dans le même répertoire
2- ouvres "journal" en activant les macros
3- entres des valeurs
4- appuies sur "envoi vers balance"
5- enregistres, fermes journal et vérifie dans balance si tout fonctionne.
Pour la suite, j'attends...
0
merci encore tu as bien compris ce que je voulait mais lorsque j exécute ya erreur suivant:erreur d'exécution '9" l'indice n'appartient pas a la sélection
puis débogage et fin de débogage
et pourtant j ai activer les macro j ai suivi ta procédure mais ca ne fonctionne pas
merci j'attends la suite.
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 743
3 nov. 2010 à 08:18
Salut,
Effectivement, il convient de renommer respectivement les 2 fichiers "journal" et "balance" (sans majuscule), cjoint renommant les pièces jointes.

Au fait, axelfrangi et blackmabanza, même personne???
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
salut et grand merci pour l'application ca fonctionne très bien ca va pouvoir me faciliter la tache ; et oui axelfrangi et blackmabanza ne forme qu'une et une seul personne j ai voulu multiplier mes chance de réponse.
dit moi es ce le même procéder si je veut que ca se fasse de feuille en feuille c-a-d enregistrer une donné sur la deuxième feuille par exemple.
merci a toi
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 743
3 nov. 2010 à 08:45
Ces deux fichiers communiquent grâce à ce code, lancé d'un bouton sur un Userform. Je te le détaille pour une meilleure compréhension :
Private Sub CommandButton1_Click()
Dim Chemin As String
Dim DerniereLigneSource As Integer, DerniereLigneDestination As Integer
'ici on affecte à la variable "chemin" le chemin d'accès complet au classeur de destination des données
Chemin = ActiveWorkbook.Path & "\balance.xls" 
'détermine la dernière ligne du fichier source
With Workbooks("journal").Sheets("Feuil1")
    DerniereLigneSource = .Range("A65536").End(xlUp).Row
End With
'ouverture du fichier destination
Workbooks.Open Chemin 'ici la feuille de destination sera la Feuil1
'ActiveWorkbook.Sheets("Feuil3").Activate 'si vous voulez copier dans la 3ème feuille
' détermine la première ligne vide du classeur destination
DerniereLigneDestination = Range("A65536").End(xlUp).Row + 1
'prends les données dans la feuille1 du source pour les placer dans la feuille sélectionnée plus haut
With Workbooks("journal").Sheets("Feuil1")
    Cells(DerniereLigneDestination, 1) = .Cells(DerniereLigneSource, 1)
    Cells(DerniereLigneDestination, 2) = .Cells(DerniereLigneSource, 2)
    Cells(DerniereLigneDestination, 4) = .Cells(DerniereLigneSource, 6)
    Cells(DerniereLigneDestination, 5) = .Cells(DerniereLigneSource, 8)
    Cells(DerniereLigneDestination, 6) = .Cells(DerniereLigneSource, 9)
End With
'enregistre et ferme le fichier destination
ActiveWorkbook.Save
ActiveWorkbook.Close
End Sub
--

Tu dis
0
salut
merci cool on garde le contact ,on garde le contact tes très fort dans le domaine moi je débute a peine et merci encore bien de chose a toi le forum reste ouvert car j aurais d'autres questions idiot a pauser je travail sur un projet de gestion de stock je te ferais un compte rendu plus tard merci a plus
0