Copier-coller

fixou81 Messages postés 200 Date d'inscription lundi 9 mai 2005 Statut Membre Dernière intervention 12 juin 2007 - 16 mars 2007 à 09:23
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 - 16 mars 2007 à 11:28
bonjour,
voila je vous explique ce qui m'ennuie.
J'ai 4 checkbox.
Ensuite j'ai un bouton valider_exercice qui me sert a parcourir en quelque sorte mes checkbox.
Private Sub valider_exercice_Click()


If Checkbox1.Value = True Then
valeur_ajouter = "Doc1"
cree_document_dos
End If
If Checkbox2.Value = True
.............
If Checkbox4.Value = True Then
valeur_ajouter = "Doc4"
cree_document_dos
End If
End sub

Ensuite j'ai fait un truc cree_document qui m'ouvre un document correspondant a la checkbox cliqué. C'est a dire que si checkbox1 cliquée alors la variable valeur_ajouter prend la valeur doc1 et donc dans cree_document on ouvre doc1. On copie l'ensemble du document. Puis on ouvre un autre document ou on colle doc1 (cf bas de ce post). Ensuite je fait de même si d'autres checkbox sont selectionées. Ceci marche très bien SAUF un document, le premier qui va etre collé ( donc le premier de mes if) qui lui a une premiere partie collé en premier et la suite de ce doc se retrouve à la fin de tous !
Donc ce que je ne comprend pas c'es pourquoi uniquement le premier doc est mal collé. Car cree_document marche bien puisqu'il me le fait bien pour les autres doc..peut etre faudrait il que je place mon curseur a la fin du doc a chaque fois mais je ne sais pas le faire...

Private Sub cree_document_dos()
Dim destination As String


destination = "C:\Documents and Settings...\documenttotal.doc"    ChangeFileOpenDirectory "C:\Documents and Settings...."
    Documents.Open FileName:=valeur_ajouter, ConfirmConversions:=False, _
        ReadOnly:=False, AddToRecentFiles:=False, PasswordDocument:="", _
        PasswordTemplate:="", Revert:=False, WritePasswordDocument:="", _
        WritePasswordTemplate:="", Format:=wdOpenFormatAuto, XMLTransform:=""
    Selection.WholeStory
    Selection.Copy
    ActiveDocument.Close
        Documents.Open FileName:=destination
    Selection.MoveDown Unit:=wdLine, Count:=12
    Selection.MoveRight Unit:=wdCharacter, Count:=113
    Selection.TypeParagraph
    Selection.TypeParagraph
    Selection.PasteAndFormat (wdPasteDefault)
    ActiveDocument.Save
    ActiveDocument.Close
End Sub

Comment faire

18 réponses

jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
16 mars 2007 à 09:37
Bonjour,

Tu es ici dans rubrique VB.Net, mais :
Ton code est écrit comme en VB6 et sa lecture nous donne à penser que c'est du VBA...!

Tu développes sous quoi, en fait ?


en VBA pur ?


en VB.Net pilotant VBA ?


e,n VB6 pilotant VBA ?
0
fixou81 Messages postés 200 Date d'inscription lundi 9 mai 2005 Statut Membre Dernière intervention 12 juin 2007
16 mars 2007 à 09:43
autant pour moi je me suis trompé de rubrique.Je devellope en vba word...
0
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
16 mars 2007 à 09:43
Salut, VBA Word pour être précis!

 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
16 mars 2007 à 09:44
Salut,
Peux tu STP, réexpliquer la particularité de Doc1? (si j'ai bien compris.)

@+: Ju£i?n
Pensez: Réponse acceptée
0

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

Posez votre question
fixou81 Messages postés 200 Date d'inscription lundi 9 mai 2005 Statut Membre Dernière intervention 12 juin 2007
16 mars 2007 à 09:49
tous mes documents sont sous word.
Doc 1 est un doc word et en fait c'est un document qui existe deja .je veux simplement le copier coller en integralité dans un autre doc (documenttotal).


je veux que si checkbox1 activée alors coller doc1, puis grace a mes if je contine et si checkbox2 activé alors coller doc2 toujours dans documenttotal mais a la suite du précedent coller..
0
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
16 mars 2007 à 09:51
http://vb.developpez.com/faqvba/?page=4.2.1#WordFalse




 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
16 mars 2007 à 09:51
Dans Ce cas ouvre une bonne fois pour toute le documenttotal avant de rentrer dans tes IF et ferme le Apres

@+: Ju£i?n
Pensez: Réponse acceptée
0
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
16 mars 2007 à 09:51
Quelques exemples standards. Sélectionner tout le document



objDoc.Range(0, 0).Select
Selection.MoveEnd wdStory




Aller au début du document



Selection.HomeKey Unit:=wdStory




Aller à la fin du document



Selection.EndKey Unit:=wdStory




Sélectionner une ligne



Selection.EndKey Unit:=wdLine, Extend:=wdExtend




Sélectionner le troisième paragraphe



objDoc.Paragraphs(3).Range.Select





 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
0
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
16 mars 2007 à 09:52
Oups le copier/coller a foutu la M****, désolé!

 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
0
fixou81 Messages postés 200 Date d'inscription lundi 9 mai 2005 Statut Membre Dernière intervention 12 juin 2007
16 mars 2007 à 09:55
ok merci je vais voir ce que je peux faire. Je vous tiens o courant
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
16 mars 2007 à 10:04
Salut,
Ca c'est cadeaux. A mettre simplement dans ton document.
NOTE: ESSAIE DE COMPRENDRE CE QUE J'AI CODE

Private Destination As String

Private Sub Valider_Exercice_Click()
   'Document de destination
   Destination = "C:\documenttotal.doc"
   'Ouverture du document de destination
   Call Documents.Open(Destination)
   'Traitement de la valeur de ChBox
   Call CheckDoc(CheckBox1.Value, "C:\3.Doc")
   Call CheckDoc(CheckBox2.Value, "C:\4.Doc")
   Call CheckDoc(CheckBox3.Value, "C:\5.Doc")
   Call CheckDoc(CheckBox4.Value, "C:\6.Doc")
   'Fermeture du document destination en sauvant
   Call Documents(Destination).Close(True)
End Sub<hr />
Private Sub CheckDoc(ByVal ChboxValue As Boolean, ByVal NomDoc As String)
   'Si le checkox est coché alors on appelle Cree_Document_Dos
   'Avec le document a copier/coller
   If ChboxValue Then Call Cree_Document_Dos(NomDoc)
End Sub<hr />

Private Sub Cree_Document_Dos(ByVal NomDoc As String)
   'Ouvre le Document Correct
   Call Documents.Open(NomDoc)
   'Selectionne tout le contenu
   Call Selection.WholeStory
   'Copie la selection
   Call Selection.Copy
   'Ferme le document sans sauver
   Call ActiveDocument.Close
   'Selectionne le Document de destianation
   Call Documents(Destination).Select
   'Se place à la fin du document
   Call Selection.EndOf(wdDocument)
   'Colle le contenu
   Call Selection.Paste
End Sub<hr />
, ----
[code.aspx?ID=41455 By Renfield]

@+: Ju£i?n
Pensez: Réponse acceptée
0
fixou81 Messages postés 200 Date d'inscription lundi 9 mai 2005 Statut Membre Dernière intervention 12 juin 2007
16 mars 2007 à 10:07
ca marche merci. En fait je me suis placé a la fin du document a chaque boucle.Merci a tous
0
fixou81 Messages postés 200 Date d'inscription lundi 9 mai 2005 Statut Membre Dernière intervention 12 juin 2007
16 mars 2007 à 10:49
ok ca marche! en fait je mes suis remis a la fin du doc après chaque coller. Merci a tous
0
fixou81 Messages postés 200 Date d'inscription lundi 9 mai 2005 Statut Membre Dernière intervention 12 juin 2007
16 mars 2007 à 10:51
ah j'avais pas vu le cadeau..j'y reflechis dessus.Merci c'est cool en tout cas. je vais voir ce que je vais faire parce que quand meme c'est bien mieux!merci
0
fixou81 Messages postés 200 Date d'inscription lundi 9 mai 2005 Statut Membre Dernière intervention 12 juin 2007
16 mars 2007 à 11:10
merci pour le code mais quand tu fais
Call Documents.Open(NomDoc)
Nom doc il sait pas ce que c'est nom?
0
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
16 mars 2007 à 11:17
c'est le chemein du document à ouvrir

 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
16 mars 2007 à 11:24
Re,
Si tu as fait un copier coller bete et méchant cela devrait fonctionner.

Il faut regarder le nom des paramètre: c'est ici que tu trouve NomDoc.
Est ce que ton problème est résolu: = > Si oui Pensez: Réponse acceptée

@+: =89254 Ju£i?n
Pensez: Réponse acceptée
0
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
16 mars 2007 à 11:28
Nomdoc est défini ici:


Call CheckDoc(CheckBox1.Value, "C:\3.Doc")


Il est défini lors de l'appel de la procédure!

 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
0
Rejoignez-nous