IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

[Macro] Copie de Word vers Excel : mise en formule


Sujet :

Macros et VBA Excel

  1. #21
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Ma solution n'était pas pour la ligne vide, mais pour le "=".

    Pour la ligne vide, il faut faire un test, mais je ne comprend plus très bien !
    tu fais une recherche sur un mot pour sélectionner le paragraphe. comment peux-tu avoir un paragraphe vide ?

    De toute façon avec un test si le paragraphe ne contient rien alors on utilise ""
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  2. #22
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 52
    Points : 29
    Points
    29
    Par défaut Re
    Au temps pour moi, j'ai oublié de préciser que je faisais aussi, en parrallèle, une macro qui copie colle dans excel un groupe de paragraphe donnés d'un document word (y compris les paragraphes vides) et qui a rencontré le même problème que la macro de recherche (à savoir les =, maintenant réglé mais le résultat est truffé de carrés ).

    Les carrés remplacent les tabulations et les retours chariots de mon texte Word et maintenant je cherche un moyen de les supprimer. J'en parle ici bien que je n'ai pas encore faire de googlelisation sur cette question (c'est pas bien mais c'est parce que je vous répond au fur et à mesure sur vos propositions).

    Je suis en train de regarder sous Google pour ce pb...

    Merci à vous
    Marc

  3. #23
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Pour les carrés, comme dit heureux au lit, c'est un vbcr (ou un vbcrlf... mais pas sûr ) donc, suffit de les remplacer par rien.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Valeur = Replace(replace(wrdApp2.Selection, vbcr,""), vblf,"")
    RECH.Sheets("Résultats").Cells(m, 4).Value = "'" & Valeur
    Comme ça, si c'est un vbcr tout seul, il sera remplacé et si c'est un vbcrlf, ils seront remplacés tous les deux
    A+

  4. #24
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 52
    Points : 29
    Points
    29
    Par défaut
    Ok, je comprends maintenant ce que disais Heureux O Lit (je suis un peu basique )
    Bien vu, la plupart des carrées ont été remplacés... il en restait qui remplacaient des Chr(9)... mais grâce à mon intuition hors du commun (), j'ai mis ça : valeur = Replace(Replace(Replace(wrdApp.Selection, Chr(9), ""), vbCr, ""), vbLf, "")

    et tout est nickel !

    Un très grand merci à vous !!!

  5. #25
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 52
    Points : 29
    Points
    29
    Par défaut Poursuite...
    Bonjour à tous!

    C'est encore moi
    Je dé-résoud ce point pour aller un peu plus loin dans le sujet... (si ce genre de pratique n'est pas correcte, n'hésitez pas à me le dire!) :

    A l'épisode précédant, le padawan aprend à copier/coller de Word vers Excel de façon propre (pas de formules à la c**, pas de petits carrés, ...) avec cette solution, proposée par ouskel'n'or et Heureux-oli :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Valeur = Replace(replace(wrdApp2.Selection, vbcr,""), vblf,"")
    RECH.Sheets("Résultats").Cells(m, 4).Value = "'" & Valeur
    Mais le padawan est gourmand, il veut en savoir plus... Comment peut-on, en gardant la même idée de synthaxe conserver la mise en forme du document word (gras, alignement, police) ?

    Quelqu'un a une idée?

    Merci d'avance,
    Marc

  6. #26
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Compte tenu du fait que tu ne peux pas utiliser Collage special en raison des caractères de contrôle (vbcr, vblf...), pour le format, c'est rapé. Tu as une solution qui consiste à "noter" la casse dans Word pour la répercuter dans Excel mais ça devient tout de suite plus compliqué. Pour ce qui me concerne, je ferais simplement ça dans Excel. D'autant que tu dis
    Citation Envoyé par ML0808
    ...(je suis un peu basique ...)
    et que je ne suis même pas sûr qu'on puisse copier le format.
    Ce que tu peux tester, c'est un copage spécial, avec format, (tu auras "tes petits carrés dans la cellule) puis l'insertion par utilisation de la variable des données corrigés (le code avec "Replace" qu'on t'a donné.
    Pas sûr du tout que ça fonctionne, la copie concernant un paragraphe, pas une cellule.
    Je te laisse tester

  7. #27
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 52
    Points : 29
    Points
    29
    Par défaut re
    Pour l'instant, j'ai fais ça très salement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    For Each para In wrdDoc.Paragraphs
    wrdApp.Selection.Paragraphs(1).Range.Select
     
    ' Retient sa couleur
        Dim CoulRVB As Long
        Dim Bleu As Integer
        Dim Vert As Integer
        Dim Rouge As Integer
     
        CoulRVB = wrdApp.Selection.Font.Color
     
        Rouge = Int(CoulRVB Mod 256)
        Vert = Int((CoulRVB Mod 65536) / 256)
        Bleu = Int(CoulRVB / 65536)
     
    Dim valeur As String
    valeur = wrdApp.Selection
     
    valeur = Replace(Replace(Replace(Replace(Replace(Replace(Replace(wrdApp.Selection, Chr(11), " "), Chr(12), " "), Chr(1), " "), Chr(7), " "), Chr(9), "      "), vbCr, " "), vbLf, " ")
    REP.Sheets(1).Cells(m, 1).Value = valeur
    REP.Sheets(1).Cells(m, 1).Font.Color = RGB(Rouge, Vert, Bleu)
    REP.Sheets(1).Cells(m, 1).Font.Size = wrdApp.Selection.Font.Size
     
     
    If wrdApp.Selection.Font.Bold = True Then
        REP.Sheets(1).Cells(m, 1).Font.Bold = True
    End If
     
    If wrdApp.Selection.Font.Italic = True Then
        REP.Sheets(1).Cells(m, 1).Font.Italic = True
    End If
     
    If wrdApp.Selection.Font.Underline = wdUnderlineSingle Then
        REP.Sheets(1).Cells(m, 1).Font.Underline = xlUnderlineStyleSingle
    End If
     
    If wrdApp.Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter Then
        REP.Sheets(1).Cells(m, 1).HorizontalAlignment = xlHAlignCenter
    End If
     
    If wrdApp.Selection.ParagraphFormat.Alignment = wdAlignParagraphRight Then
        REP.Sheets(1).Cells(m, 1).HorizontalAlignment = xlHAlignRight
    End If
     
    m = m + 1
     
    wrdApp.Selection.MoveDown Unit:=wdParagraph, Count:=1 'descend d'un paragraphe
     
    Next para
    Mais je vais jeter un oeil à ta solution

  8. #28
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Citation Envoyé par ML0808
    Mais je vais jeter un oeil à ta solution
    Comme je t'ai dit, je n'ai pas de solution... des tests à effecuer ou la mise en forme dans Excel.
    Bien que lourde, ta solution en est une

  9. #29
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 52
    Points : 29
    Points
    29
    Par défaut Re
    Alors à l'issue des tests - et si j'ai bien compris ce que tu me proposes -, à la base il faudrait que ces lignes me colle le texte avec le format sous word :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    wrdApp.Selection.Paragraphs(1).Range.Select
    wrdApp.Selection.Copy
    REP.Sheets(1).Cells(m, 1).PasteSpecial Format:=wrdApp.Selection, _ Operation:=xlNone
    Mais... ça marche pas

  10. #30
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Je m'en doutais. Je t'ai dit "Pas sûr du tout que ça fonctionne, la copie concernant un paragraphe, pas une cellule". C'étais donc "à tout hasard"

  11. #31
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 52
    Points : 29
    Points
    29
    Par défaut
    Pas de soucis, ca valait le coup de tester!
    Je laisse ce point ouvert 24h si quelqu'un à une idée sur une sorte de PasteSpecial avec mise en forme depuis word... sinon je repesserai le point en résolu (c'est pour la beauté du geste, je ne travaille plus sur ce sujet en particulier)...

  12. #32
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Ça deviendrait lourd et complexe, pour chaque paragraphe, il faudrait copier les lettres une à une avec les attributs de mise en forme.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Macro copie de Word vers Excel
    Par Invité dans le forum VBA Word
    Réponses: 1
    Dernier message: 21/09/2009, 19h10
  2. Copie de titre de word vers Excel
    Par Yacine_92 dans le forum Macros et VBA Excel
    Réponses: 23
    Dernier message: 26/08/2008, 00h02
  3. Transfert de données Word vers Excel via macro
    Par Pascalou2008 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 10/03/2008, 22h02
  4. Réponses: 4
    Dernier message: 06/11/2007, 14h49
  5. Macro import du texte Word vers Excel
    Par Bernard6773 dans le forum VBA Word
    Réponses: 6
    Dernier message: 05/09/2007, 10h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo