Excel Downloads
Forum

Précédent   Excel Downloads Forums > Excel > Forum Excel

Advertisement

Réponse
 
LinkBack Outils de la discussion
Vieux 03/05/2008, 11h27   #1 (permalink)
XLDnaute Nouveau
 
Date d'inscription: octobre 2007
Messages: 8
Par défaut Publipostage à l'envers:

Publipostage à l'envers:recuperer du word dans excel
Je voudrai recuperer dans excel un fichier d'etiquette adresse word.
C Possible?
stp74 est déconnecté   Réponse avec citation
ANNONCES
Vieux 03/05/2008, 11h51   #2 (permalink)
XLDnaute Occasionel
 
Date d'inscription: décembre 2006
Localisation: chassieu
Messages: 178
Par défaut Re : Publipostage à l'envers:

bonjour,

Ah ! non ! c'est un peu court, jeune homme !
On pouvait dire... Oh ! Dieu !.., bien des choses en somme...
En variant le ton, - par exemple, tenez
Agressif : " Moi, monsieur, si j'avais un tel fichier,
Il faudrait sur-le-champ que je vous l'envoyasse ! "
Amical : " Mais il doit trainer dans une place
Pour voir, cliquez-nous "envoyer" ou je zap ! "
Descriptif : " C'est un doc !... c'est une txt !... c'est un csv !
Que dis-je, c'est un csv ?... faisons appel au pendule ! "


.....

à +
><>
nouv est déconnecté   Réponse avec citation
Vieux 03/05/2008, 11h59   #3 (permalink)
XLDnaute Accro
 
Avatar de Jiheme
 
Date d'inscription: septembre 2006
Localisation: Antony
Messages: 1 016
Envoyer un message via MSN à Jiheme
Par défaut Re : Publipostage à l'envers:

Bonjour STP, nouv

Sans rapport avec le fil :

Nouv très bien en plus d'Excel, on a des lettres, j'adore ta parodie et en plus,

A la fin de l'envoi tu touches.

A+
__________________
Jiheme

La Science consiste à passer d'un étonnement à un autre (Aristote)
Excel aussi (Moi)


FAITES COMME LE SERVICE PUBLIC
SUPPRIMEZ LA PUB
Jiheme est déconnecté   Réponse avec citation
Vieux 03/05/2008, 12h31   #4 (permalink)
XLDnaute Nouveau
 
Date d'inscription: octobre 2007
Messages: 8
Par défaut Re : Publipostage à l'envers:

c un .doc
Vous avez besoin que je vous l'envoyasse?
Ne pouvez vous pas m'expliquer la procedure de recuperation
merci
stp74 est déconnecté   Réponse avec citation
Vieux 03/05/2008, 12h55   #5 (permalink)
XLDnaute Occasionel
 
Date d'inscription: décembre 2006
Localisation: chassieu
Messages: 178
Par défaut Re : Publipostage à l'envers:

re,

bon puisque ça plait :
Ô rage ! ô désespoir ! ô week end ennemi ! N'ai-je donc pas ce fichier honni ? Et ne puis-je envoyer ces étiquettes, et voir d'un seul coup répondre à ma requête ?

désolée mais boule en panne ce matin, donc j'irais au plus simple - copier coller

sans connaitre la structure du fichier word, difficile de répondre à ta question, donc oui ton fichier word serait le bienvenue ou alors un très très très bon descriptif du fichier...

><>
nouv est déconnecté   Réponse avec citation
Vieux 03/05/2008, 21h49   #6 (permalink)
XLDnaute Nouveau
 
Date d'inscription: octobre 2007
Messages: 8
Par défaut Re : Publipostage à l'envers:

ci joint une partie de mon fichier
Fichiers attachés
Type de fichier : zip aaa.zip (6,9 Ko, 10 affichages)
stp74 est déconnecté   Réponse avec citation
Vieux 04/05/2008, 00h17   #7 (permalink)
XLDnaute Impliqué
 
Avatar de tatiak
 
Date d'inscription: février 2005
Messages: 640
Par défaut Re : Publipostage à l'envers:

B'soir à tous, (et pour mon 500 ième!!!)
Un premier jet d'une macro à placer dans un module à déclencher par un bouton placé sur une des feuilles.
A noter : le code est "générique", ç-à-d : pas besoin d'activer de référence à quelconque librairie (et toc!)
Code:
Option Explicit

Sub Etiquettes_Word()
Dim NDF As String
Dim WordApp As Object
Dim WordDoc As Object
Dim i As Integer, j As Integer
Dim LigneXL As Integer
    LigneXL = ActiveSheet.Range("A65000").End(xlUp).Row + 1
    NDF = Application.GetOpenFilename
    On Error Resume Next
    Set WordApp = CreateObject("Word.Application")
    Set WordDoc = WordApp.Documents.Open(NDF, ReadOnly:=False)
    With WordApp
        .Visible = False
        With WordDoc.Tables(1)
            For i = 1 To .Rows.Count
                For j = 1 To 3
                    ActiveSheet.Cells(LigneXL, 1).Value = .Cell(i, j).Range.Text
                    LigneXL = LigneXL + 1
                Next j
            Next i
        End With
    End With
    WordApp.Application.Quit
    Set WordDoc = Nothing
    Set WordApp = Nothing
    MsgBox (" Acquisition Ok")
End Sub
Action de la macro : le contenu des étiquettes se copie à la file dans la colonne A de la feuille. (pas testé sur des étiquettes sur plusieurs pages : à voir ...)
Amélioration à apporter : le découpage propre des données par colonnes ...
tatiak
__________________
Visitez le Blog-à-tatiak!
tatiak est déconnecté   Réponse avec citation
Vieux 04/05/2008, 09h08   #8 (permalink)
XLDnaute Impliqué
 
Avatar de tatiak
 
Date d'inscription: février 2005
Messages: 640
Par défaut Re : Publipostage à l'envers:

Bonjour à tous,
Pour le 501ème, et en complément de la macro d'hier, une p'tite fonction qui tronçonne le contenu en Nom/Adresse/Cp/Ville

Code:
Option Explicit

Sub Etiquettes_Word()
Dim NDF As String
Dim WordApp As Object
Dim WordDoc As Object
Dim i As Integer, j As Integer
Dim LigneXL As Integer
Dim tatiak As String
    LigneXL = ActiveSheet.Range("A65000").End(xlUp).Row + 1
    NDF = Application.GetOpenFilename
    On Error Resume Next
    Set WordApp = CreateObject("Word.Application")
    Set WordDoc = WordApp.Documents.Open(NDF, ReadOnly:=False)
    With WordApp
        .Visible = False
        With WordDoc.Tables(1)
            For i = 1 To .Rows.Count
                For j = 1 To 3
                    tatiak = .Cell(i, j).Range.Text
                    ActiveSheet.Cells(LigneXL, 1).Value = PartieLigne(1, tatiak)
                    ActiveSheet.Cells(LigneXL, 2).Value = PartieLigne(2, tatiak)
                    ActiveSheet.Cells(LigneXL, 3).Value = Mid(PartieLigne(3, tatiak), 1, 5)
                    ActiveSheet.Cells(LigneXL, 4).Value = Mid(PartieLigne(3, tatiak), 7)
                    LigneXL = LigneXL + 1
                Next j
            Next i
        End With
    End With
    WordApp.Application.Quit
    Set WordDoc = Nothing
    Set WordApp = Nothing
    MsgBox (" Acquisition Ok")
End Sub

Function PartieLigne(N As Byte, S As String) As String
Dim Caract As String
Dim i As Integer, j As Integer, nb13  As Integer
    PartieLigne = ""
    i = 1
    nb13 = 0
    Caract = Mid(S, i, 1)
    Do
        Do
            Caract = Mid(S, i, 1)
            i = i + 1
        Loop Until Caract = Chr$(13)
        nb13 = nb13 + 1
    Loop Until nb13 = N
    j = i
    Do
        Caract = Mid(S, j, 1)
        j = j + 1
    Loop Until Caract = Chr$(13)
    PartieLigne = Mid(S, i + 1, j - i)
End Function
Et voilà, bon dimanche
tatiak
PS: je me permets juste une remarque, la mise en ligne d'un fichier nominatif avec adresses est p'têt pas très conseillé, un fichier "anonymisé" aurait p'têt été mieux (même si ça semble être une injonction paradoxale ... )
Fichiers attachés
Type de fichier : zip RecupEtiquette.zip (13,3 Ko, 18 affichages)
__________________
Visitez le Blog-à-tatiak!

Dernière modification par tatiak ; 04/05/2008 à 09h24.
tatiak est déconnecté   Réponse avec citation
Vieux 04/05/2008, 11h46   #9 (permalink)
XLDnaute Nouveau
 
Date d'inscription: octobre 2007
Messages: 8
Par défaut Re : Publipostage à l'envers:

Titiak,
mon fichier word adresse comporte plusieurs centaines de pages .
comment faire pour traiter tout le fichier ,car la macro ne traite qu'une seule page.

Bravo et merci a Titiak pour son exellent travail
stp74 est déconnecté   Réponse avec citation
Vieux 04/05/2008, 12h33   #10 (permalink)
XLDnaute Impliqué
 
Avatar de tatiak
 
Date d'inscription: février 2005
Messages: 640
Par défaut Re : Publipostage à l'envers:

Re
Merci pour le compliment
Pour un grand document, c'est simple, yaka modifier la macro comme suit :
Code:
        For NbTableaux = 1 To WordDoc.tables.Count
            With WordDoc.tables(NbTableaux)
                For i = 1 To .Rows.Count
                    For j = 1 To 3
                        tatiak = .Cell(i, j).Range.Text
                        ActiveSheet.Cells(LigneXL, 1).Value = PartieLigne(1, tatiak)
                        ActiveSheet.Cells(LigneXL, 2).Value = PartieLigne(2, tatiak)
                        ActiveSheet.Cells(LigneXL, 3).Value = Mid(PartieLigne(3, tatiak), 1, 5)
                        ActiveSheet.Cells(LigneXL, 4).Value = Mid(PartieLigne(3, tatiak), 7)
                        LigneXL = LigneXL + 1
                    Next j
                Next i
            End With
        Next NbTableaux
ce qui prend en compte l'ensemble des "tables" du doc word
tatiak
Fichiers attachés
Type de fichier : zip RecupEtiquette2.zip (24,8 Ko, 11 affichages)
__________________
Visitez le Blog-à-tatiak!
tatiak est déconnecté   Réponse avec citation
Vieux 04/05/2008, 15h10   #11 (permalink)
XLDnaute Nouveau
 
Date d'inscription: octobre 2007
Messages: 8
Par défaut Re : Publipostage à l'envers:

j'ai une erreur de compilation avec le script quand je le modifie comme ci dessous:

Option Explicit

Sub Etiquettes_Word()
Dim NDF As String
Dim WordApp As Object
Dim WordDoc As Object
Dim i As Integer, j As Integer
Dim LigneXL As Integer
Dim tatiak As String
LigneXL = ActiveSheet.Range("A65000").End(xlUp).Row + 1
NDF = Application.GetOpenFilename
On Error Resume Next
Set WordApp = CreateObject("Word.Application")
Set WordDoc = WordApp.Documents.Open(NDF, ReadOnly:=False)
With WordApp
.Visible = False
For NbTableaux = 1 To WordDoc.tables.Count
With WordDoc.tables(1)
For i = 1 To .Rows.Count
For j = 1 To 3
tatiak = .Cell(i, j).Range.Text
ActiveSheet.Cells(LigneXL, 1).Value = PartieLigne(1, tatiak)
ActiveSheet.Cells(LigneXL, 2).Value = PartieLigne(2, tatiak)
ActiveSheet.Cells(LigneXL, 3).Value = Mid(PartieLigne(3, tatiak), 1, 5)
ActiveSheet.Cells(LigneXL, 4).Value = Mid(PartieLigne(3, tatiak), 7)
LigneXL = LigneXL + 1
Next j
Next i
End With
End With
Next NbTableaux
WordApp.Application.Quit
Set WordDoc = Nothing
Set WordApp = Nothing
MsgBox (" Acquisition Ok")
End Sub

Function PartieLigne(N As Byte, S As String) As String
Dim Caract As String
Dim i As Integer, j As Integer, nb13 As Integer
PartieLigne = ""
i = 1
nb13 = 0
Caract = Mid(S, i, 1)
Do
Do
Caract = Mid(S, i, 1)
i = i + 1
Loop Until Caract = Chr$(13)
nb13 = nb13 + 1
Loop Until nb13 = N
j = i
Do
Caract = Mid(S, j, 1)
j = j + 1
Loop Until Caract = Chr$(13)
PartieLigne = Mid(S, i + 1, j - i)
End Function
stp74 est déconnecté   Réponse avec citation
Vieux 04/05/2008, 15h14   #12 (permalink)
XLDnaute Nouveau
 
Date d'inscription: octobre 2007
Messages: 8
Par défaut Re : Publipostage à l'envers:

je n'avais pas vu le nouveau fichier
tout fonctionne très bien
encore bravo et bon dimanche
stp74 est déconnecté   Réponse avec citation
ANNONCES
Réponse

Liens sociaux

Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Discussions similaires
Discussion Auteur Forum Réponses Dernier message
texte à l'envers Dan31 Forum Excel 7 04/10/2007 19h47
Ecrire un mot à l'envers Don Foster Forum Excel 11 07/06/2007 22h06
Boucle à l'envers Fab117 Forum Excel 3 03/04/2007 11h51
A l'envers !!! :o) Gilles Forum Excel 10 09/10/2006 09h33
date à l'envers julie Forum Excel Downloads - Archives 2 16/02/2004 21h26


Fuseau horaire GMT +2. Il est actuellement 08h07.


(C) 2006 Excel Downloads