Copier cellules sous conditions dans Texedit (voire Word)

Bonjour,

Là, je planche.

J'image que c'est tout con, mais je n'ai pas trouvé.

Je cherche à copier une série de cellules se trouvant dans une seule colonne mais sous deux conditions et les placer dans un nouveau fichier Textedit, avec la fonction spéciale "coller et appliquer le style" - afin d'éviter de se retrouver avec un tableau...

Voici un fichier d'exemple, et mes essais de macro dans module 1, Sub listepourcourrier()

L'objectif est, étant donné que cette colonne comprend le nom des factures préalablement générer par une macro, de récupérer le noms des factures qui n'ont pas encore été envoyé pour préparer mon courrier accompagnant les dites factures - courrier comprenant parfois plusieurs projet, donc plusieurs fichiers excel dont il y a aura à extraire le nom des factures.

Merci d'avance pour votre aide,

cordialement,

iArmeek

Salut,

J’ai tenté de résoudre (en partie) ton problème, notamment à l’aide d’informations glanées sur Internet.

Je te présente l’état de mon travail bien qu’il n’est pas complet ; je n’ai par exemple pas réussi à ne pas coller les bordures, malgré divers essais sur la base des informations à disposition dans l’aide Excel, sous xlPasteType (voir copie d’écran ci-dessous). Je n’ai pas non plus cherché à travailler avec cette autre application que Word.

xlpastetype enumeration

Mais selon que la première partie te convient déjà ou non, je peux peut-être continuer à chercher, ou peut-être que tu as toi-même une idée à ce sujet, ou peut-être qu’un autre membre va nous venir en aide.

La macro Sub listepourcourrier() a été affectée au bouton LISTE FACTURES POUR COURRIER.

A te relire.

Salut, merci pour ton aide. ça marche super.

Avec un peu de recherche, j'ai trouvé comment coller sans mise en forme dans word.

Sub listepourcourrier()
Dim Word_Xx As Object

Application.ScreenUpdating = False

Chemin = ThisWorkbook.Path
Set Word_Xx = CreateObject("word.application")
Word_Xx.Visible = True
Word_Xx.Documents.Add

    With Sheets("Tableau des couts")
        For i = 8 To 25
            If .Range("K" & i).Value <> "" And Range("L" & i).Value = "" Then
                .Range("N" & i).Copy
                'ici la formule pour copier sans mise en forme
                Word_Xx.Selection.PasteAndFormat (wdPasteDefault)
            End If
        Next i
    End With

Application.CutCopyMode = False

'Word_Xx.ActiveDocument.SaveAs Chemin & "\Test - " & Date & " " & Hour(Time) & "." & Minute(Time) & "." & Second(Time) & ".doc"
''Word_Xx.ActiveDocument.Close 'SI DESIRE
''Set Word_Xx = Nothing 'VRAIMENT NECESSAIRE ???????????
End Sub

Mais comme je m'en doutais, avec word c'est la lenteur du processus.

Un autre problème - à confirmer - il semble que quand word est déjà ouvert, cela bloque. Des idées...

A peaufiner...

Merci,

iArmeek


Je confirme dès que word est ouvert, ça bloque à :

Set Word_Xx = CreateObject("word.application")

Salut,

Je n'ai pas trop le temps de tester, mais est-ce qu'en remplaçant

Word_Xx.Visible = True

par

If Word_Xx.Visible = False Then Word_Xx.Visible = True

ne passerait pas ?

Amicalement.

Salut,

Le problème est en amont : http://support.microsoft.com/kb/177097/fr

Le bogue se fait parce que Word est déjà ouvert, il faut donc vérifier préalablement s'il est ouvert ou non

Mais avec leur code tel quel (sans changer une virgule), la macro ne marche pas chez moi.

Sub RunWord()

   Dim wObj as Word.Application
   On Error Resume Next

   ' Get existing instance of Word if it exists.
   Set wObj = GetObject(, "Word.Application")

   If Err <> 0 then
      ' If GetObject fails, then use CreateObject instead.
      Set wObj = CreateObject("Word.Application")
   End If

   ' Add a new document.
   wObj.Documents.Add

   ' Exit Word.
   wObj.Quit

   ' Clear object memory.
   Set wObj = Nothing

End Sub

un problème de version, de système....

je cherche encore

à bientôt

iArmeek

Voici la réponse :

Sub listepourcourrier()

   Dim Word_Xx As Object
   On Error Resume Next

   Set Word_Xx = GetObject(, "Word.Application")
   If Err <> 0 Then
      Set Word_Xx = CreateObject("Word.Application")
   End If

   Word_Xx.Visible = True
   Word_Xx.Documents.Add

   With Sheets("Tableau des couts")
        For i = 8 To 25
            If .Range("K" & i).Value <> "" And Range("L" & i).Value = "" Then
                .Range("N" & i).Copy
                Word_Xx.Selection.PasteAndFormat (wdPasteDefault)
            End If
        Next i
    End With

x = MsgBox("C'est fait", 4096, "liste factures")
'MsgBox "C'est fait"
'MsgBox.Visible = True
Application.CutCopyMode = False
End Sub

C'est long!!! comme processus alors j'ai rajouté un message, mais je n'arrive pas à le mettre au premier plan!!!! (Je suis maniaque)

Mais concernant la question initialement posée, merci de ton aide Yvouille, car sans toi, j'aurai pas pu avancer.

Cordialement,

iArmeek

Rechercher des sujets similaires à "copier conditions texedit voire word"