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

VBA Word Discussion :

fusion cellule identique sous World 2007


Sujet :

VBA Word

  1. #1
    Membre régulier Avatar de camzo
    Homme Profil pro
    ingénieur en documentation
    Inscrit en
    Décembre 2006
    Messages
    168
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : ingénieur en documentation
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 168
    Points : 101
    Points
    101
    Par défaut fusion cellule identique sous World 2007
    Bonsoir à tous,

    J'utilisais une macro sympa sous World 2003 pour fusionner les cellules identiques d'une même colonne. Ca marchat très bien mais sous 2007, problème !

    Voici mon code :

    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
    Sub fusion()
    Dim plign, nbl, n As Long
    Dim cref As Byte
    Dim ref, refs  As Variant
    '1ère ligne de données du tableau
    plign = 1
    'N° de la colonne contenant la référence client (à modifier éventuellement)
    cref = 1
     
     
     
    'Déterminer la dernière ligne du tableau
    nbl = 100
     
    'Modifier les 7 "adretour" avec vos adresses réelles
    Testval:
    If plign > nbl Then
    GoTo Fin
    End If
     
    ActiveDocument.Tables(1).Cell(plign, cref).Select
    ref = Selection
    plign = plign + 1
    ActiveDocument.Tables(1).Cell(plign, cref).Select
    refs = Selection
    If ref = refs Then
    ActiveDocument.Tables(1).Cell(plign, cref).Select
    Selection.Delete Unit:=wdCharacter, Count:=1
    Selection.MoveUp Unit:=wdLine, Count:=1, Extend:=wdExtend
    Selection.Cells.Merge
    GoTo Testval
    Else
    GoTo Testval
    End If
     
    Fin:
    If ActiveDocument.Saved = False Then ActiveDocument.Save
     
    End Sub
    et j'ai comme message d'erreur :

    erreur d'exécution 5941
    le membre de la collection requis n'existe pas
    avec pour ligne qui beugue :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveDocument.Tables(1).Cell(plign, cref).Select
    si quelqu'un a une idée, qu'il ne se gêne pas !!!

  2. #2
    Candidat au Club
    Inscrit en
    Mars 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 9
    Points : 4
    Points
    4
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveDocument.Tables(1).Cell(plign, cref).Select
    si quelqu'un a une idée, qu'il ne se gêne pas !!![/QUOTE]


    Je n'ai pas encore office 2007 pour verrifier mais j'imagine que le code d'erreur que tu as rencontré t'indique que le tableau N° 1 n'existe pas. Peut être que sous word 2007 les tableaux sont numéroté en commençant pas 0

    ton code deviendrait donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveDocument.Tables(0).Cell(plign, cref).Select
    Si c n'ai pas le cas, ce sont peut être les cellules des tableau qui ont changé de numérotation ...

    bon c juste une suggestion, en passant ... Bonne contunuation !

  3. #3
    Membre régulier Avatar de camzo
    Homme Profil pro
    ingénieur en documentation
    Inscrit en
    Décembre 2006
    Messages
    168
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : ingénieur en documentation
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 168
    Points : 101
    Points
    101
    Par défaut
    merci mais ça ne marche pas...

    j'ai vraiment du mal à voir ce qui cloche. J'ai obtenu un peu d'aide et voici ce que j'ai pu obtenir :

    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
    Sub fusion()
    Dim plign, nbl, n As Long
    Dim cref As Byte
    Dim ref, refs  As Variant
    '1ère ligne de données du tableau
    plign = 1
    'N° de la colonne contenant la référence client (à modifier éventuellement)
    cref = 3
     
     
     
    'Déterminer la dernière ligne du tableau
    nbl = 100
     
    'Modifier les 7 "adretour" avec vos adresses réelles
    Testval:
    If plign > nbl Then
    GoTo Fin
    End If
     
    Set LaCell = ActiveDocument.Tables(1).Cell(plign, cref)
    ' LaCell.Select
    ref = Selection
     
    MsgBox (ref)
     
    plign = plign + 1
    ActiveDocument.Tables(1).Cell(plign, cref).Select
    refs = Selection
    If ref = refs Then
    ' ActiveDocument.Tables(1).Cell(plign, cref).Select
    Set innutile = RecupCelLignePrecedente(ActiveDocument.Tables(1), plign, cref)
     
    Selection.Delete Unit:=wdCharacter, Count:=1
    Selection.MoveUp Unit:=wdLine, Count:=1, Extend:=wdExtend
    Selection.Cells.Merge
    GoTo Testval
    Else
    GoTo Testval
    End If
     
    Fin:
    If ActiveDocument.Saved = False Then ActiveDocument.Save
     
    End Sub
    mais, ça ne marche pas non plus...

    peut-être que cela peut inspirer certains...

    merci d'y jeter un coup d'oeil si certains ont le temps.


    camzo

  4. #4
    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
    C'est pas cette ligne qui pose problème, j'ai utilisé la même mais en remplaçant les références par des valeurs et ça passe.

    Essaie de définir les référence en long au lieu de byte.
    J'ai peu d'espoir mais essaie quand même.
    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 !

  5. #5
    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
    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
     
    Sub fusion()
    Dim plign, nbl, n As Long
    Dim cref As Long
    Dim ref, refs  As Variant
    '1ère ligne de données du tableau
    plign = 1
    'N° de la colonne contenant la référence client (à modifier éventuellement)
    cref = 1
    'MsgBox ActiveDocument.Tables(1).Rows.Count
    'MsgBox ActiveDocument.Tables(1).Columns.Count
     
     
     
     
    'Déterminer la dernière ligne du tableau
    nbl = 100
    Debug.Print "1"
     
    'Modifier les 7 "adretour" avec vos adresses réelles
    Testval:
    If plign > nbl Then
    GoTo Fin
    End If
    Debug.Print "2"
     
    ActiveDocument.Tables(1).Cell(plign, cref).Select
    ref = Selection
    Debug.Print "2.2", plign, cref
     
    plign = plign + 1
    ActiveDocument.Tables(1).Cell(plign, cref).Select
    refs = Selection
    If ref = refs Then
    ActiveDocument.Tables(1).Cell(plign, cref).Select
    Selection.Delete Unit:=wdCharacter, Count:=1
    Selection.MoveUp Unit:=wdLine, Count:=1, Extend:=wdExtend
    Selection.Cells.Merge
    plign = plign + 1
     
    GoTo Testval
    Else
    GoTo Testval
    End If
     
    Fin:
    If ActiveDocument.Saved = False Then ActiveDocument.Save
     
    End Sub
    J'ai toujours le même message d'erreur, mais cette fois il va au bout du tableau.
    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 !

Discussions similaires

  1. Réponses: 11
    Dernier message: 08/01/2011, 22h52
  2. Fusion cellules identiques excel
    Par picsou66 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 10/05/2010, 20h52
  3. [macro commande] : fusion de cellules identiques
    Par Prissou dans le forum VBA Word
    Réponses: 2
    Dernier message: 27/04/2007, 15h22
  4. tableau: largeurs cellules identiques sous IE mais pas sous FF
    Par cortex024 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 01/12/2006, 08h40
  5. [VB] Fusion cellules dans un grid
    Par malhivertman1 dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 21/12/2005, 09h07

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