Ecriture de données d'un fichier à un autre

[Résolu]
Signaler
Messages postés
17
Date d'inscription
jeudi 25 janvier 2007
Statut
Membre
Dernière intervention
12 février 2007
-
Messages postés
17
Date d'inscription
jeudi 25 janvier 2007
Statut
Membre
Dernière intervention
12 février 2007
-
Bonjour,

Je suis un grand débutant dans la programmation sous excel.

Je souhaiterais connaitre le code pour écrire des données depuis un fichier excel vers un autre.
Je m'explique, j'ai un classeur excel (nommé "Planning 2007") comprenant plusieurs feuilles (Janvier 2007, Février 2007, ...) et j'aimerais savoir comment je peux faire pour écrire directement des données dans un autre fichier (nommé "Planning Personnels 2007" lui aussi comprenant des feuilles nommées "Janvier 2007"...) sans lien entre les deux.

Merci par avance

Cordialement
 [mailto:Benj@h Benj@h] 

14 réponses

Messages postés
17
Date d'inscription
jeudi 25 janvier 2007
Statut
Membre
Dernière intervention
12 février 2007

Merci

Mes fichiers ne sont pas des modèles mais existe-t-il un moyen d'enregistrer sous le meme nom
Lorsque le code s'exécute tout se passe bien mais l'enregistrement  se fait sous forme de copie ("Copie Planning Personnels 2007") alors que je voudrais qu'i lait le même nom. 

Peut-être comme ça:
 (exemple faux je pense :
Workbooks(NameSecondBook).Close(True, "Planning Personnels 2007.xls", MySecondBook) = True

Merci encore
 [mailto:Benj@h Benj@h] 
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Non, non, c'est pas bon, mais essaie comme ceci pour voir :

Workbooks(NameSecondBook).Save = True
Workbooks(NameSecondBook).Close

@++

<hr width="100%" size="2" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
/DIV>
Messages postés
17
Date d'inscription
jeudi 25 janvier 2007
Statut
Membre
Dernière intervention
12 février 2007

Merci encore,

Mais j'ai quand même un message "un fichier existe déjà à cet emplacement , voulez-vous le remplacer". Ne peut on pas automatiser cette action.

Je sui spas sur que l'écriture se fasse, je vérifie.

Thanks
 [mailto:Benj@h Benj@h] 
Messages postés
17
Date d'inscription
jeudi 25 janvier 2007
Statut
Membre
Dernière intervention
12 février 2007

Alors, l'enregistrement ne s'effectue pas correctement ! Je ne vois pas pourquoi...

Comment fait-on pour exécuter les modules à la fermeture du fichier?

Merci encore pour votre patience.

 [mailto:Benj@h Benj@h] 
Messages postés
2237
Date d'inscription
lundi 29 mai 2006
Statut
Membre
Dernière intervention
29 mai 2008
10
Salut!
Ecrire quoi? Comment? Où? Quel critère? Dsl mais nous ne sommes pas des devin! Soit un peu plus précis Stp, même beaucoup plus!

 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
Messages postés
17
Date d'inscription
jeudi 25 janvier 2007
Statut
Membre
Dernière intervention
12 février 2007

Bonjour,

Merci Drikce06. En fait je souhaiterais écrire du texte dans une plage de cellule.
Comment : à la fermeture du fichier nommé "Planning 2007" qui doit écrire dans le fichier nommé "Planning personnel 2007"
Ou : Dans une feuille nommé Janvier 2007 dans une plage de cellule (etc pour les autres feuilles)


Désolé mais je débute.

Cordialement
 [mailto:Benj@h Benj@h] 
Messages postés
2237
Date d'inscription
lundi 29 mai 2006
Statut
Membre
Dernière intervention
29 mai 2008
10
Salut, c'est pas trop difficile, va voir du côté des mes sources et snippets (et il doit y en avoir plain d'autre), ça te donnera une bonne idée de comment faire! Pour ça tu vas sur ma fiche!

 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
Messages postés
17
Date d'inscription
jeudi 25 janvier 2007
Statut
Membre
Dernière intervention
12 février 2007

Bonjour et encore merci Drikce06 de t'occuper de mon cas.

Malheureusement je n'ai pas réussit à trouver la réponse à ma question dans tes codes sources. Je dois mal m'y prendre. Peux tu m'orienter plus précisement.

Merci par avance

 [mailto:Benj@h Benj@h] 
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Salut,

voici un exemple de code pour piloter plusieurs classeurs (commentaires explicatifs dans le code) :

Option Explicit

Const MySecondBook As String = "C:\Documents and Settings\Mortalino\Bureau\Classeur
test.xls"

Sub Exemple_Piloter_2_Classeurs()
    Dim NameSecondBook As String
    
NameSecondBook = "Classeur
test.xls"
' ici pon stocke le nom du classeur à
ouvrir (donc le n°2)

Workbooks.Open (MySecondBook)
' là
on ouvre le 2nd classeur, via le chemin enregistré dans la
constante

Workbooks(NameSecondBook).Sheets("Feuil3").Select
' sélectionne la feuille  voulue

Range("A1").Value = ThisWorkbook.Sheets("Feuil1").Range("A1").Value
Range("A2").Value = ThisWorkbook.Sheets("Feuil1").Range("A2").Value
Range("A3").Value = ThisWorkbook.Sheets("Feuil1").Range("A3").Value
Range("A4").Value = ThisWorkbook.Sheets("Feuil1").Range("A4").Value
Range("A5").Value = ThisWorkbook.Sheets("Feuil1").Range("A5").Value
' écriture des données (pour l'exemple, j'avais mis 1 à 5 dans les
cellules

Workbooks(NameSecondBook).Close True
' fermeture de second classeur
en enregistrant les modifications

End Sub


~ <small>[code.aspx?ID=39466 Mortalino] ~
Colorisation automatique</small>

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
Messages postés
17
Date d'inscription
jeudi 25 janvier 2007
Statut
Membre
Dernière intervention
12 février 2007

Bonjour et merci de votre aide,

malheureusement je n'ai pas réussi à faire fonctionner ce code car je pense que cela est du au fait que mon deuxieme fichier est en lecture seule. Mais je connais le mot de passe.
J'ai essayé cela mais ca n'a rien changer :
Workbooks.Open (MySecondBook), ReadOnly:=True, Password:="MDP"

Le code que mortalino m'a gentiment écrit doit-il être inscrit dans le code de ma feuille ?

Merci encore.

 [mailto:Benj@h Benj@h] 
(grand débutant)
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Salut ben,

non, le code doit être placé dans un Module.
Quand en as-tu besoin ? (a l'ouverture du classeur ? , au click d'un bouton situé sur une feuille ?)

Pour ton Workbooks.Open (MySecondBook), ReadOnly:=True, Password:="MDP"
met à False le ReadOnly, et ca ne s'écrit pas comme ceci :

Call Workbooks.Open(Filename:=MySecondBook, ReadOnly:=False, Password:="MDP")

@++

<hr width="100%" size="2" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
/DIV>
Messages postés
17
Date d'inscription
jeudi 25 janvier 2007
Statut
Membre
Dernière intervention
12 février 2007

Merci encore,

Cela fonctionne mieux !
Mais si je mets readonly:=true, excel me demande le mot de passe de la lecture seule. Par contre si je mets readonly:=false cela fonctionne mais l'enregistrement se fait sous forme de copie. Que puis-je faire ?

Comment faire si j'ai plusieurs plage de données à écrire ?

Merci pour ton aide.

 [mailto:Benj@h Benj@h] 
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
normalement,             Workbooks(NameSecondBook).Close True

devrait suffir. Es tu sûr que ces fichiers là ne sont pas des Modèles ?

Pour écrire dans plusieurs plages, c'est comme dans mon exemple.

@++

<hr width="100%" size="2" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
/DIV>
Messages postés
17
Date d'inscription
jeudi 25 janvier 2007
Statut
Membre
Dernière intervention
12 février 2007

Merci pour votre aide !

Après maintes efforts je remarque que j'ai un trop grand nombre de données à écrire sur le deuxième classeur et cela ralenti énormément la copie. Alors tant pis pour moi.

Merci encore à ceux qui m'ont aidé.

 [mailto:Benj@h Benj@h]