Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Word > VBA Word
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/04/2007, 19h25   #1
Membre du Club
 
Avatar de camzo
 
Inscription : décembre 2006
Messages : 135
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : décembre 2006
Messages : 135
Points : 50
Points : 50
Par défaut [VBA W] : fusion cellules

Bonjour à tous,

j'aide une amie à faire une fusion dans un énorme tableau word.

il faut que les cellules de la première colonne soient fusionnées lorsque la valeur est identique (toutes les cellules de valeur 1 deviennent une seule cellule à veleur 1). J'ai essayé un peu en VBA en piochant dans des tutos et j'obtiens ça :

Code :
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 = 15
 
'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
malheureusement, ça ne fusionne que deux lignes par deux lignes...

j'ai vu après qu'il fallait utiliser apparemment :
Code :
1
2
3
'Déterminer la dernière ligne du tableau
mytable = Tables(1)
nbl = mytable.Rows.Count
au lieu de :

Code :
1
2
'Déterminer la dernière ligne du tableau
nbl = 15
mais je ne comprend vraiment pas par quoi je dois remplacer Tables(1) ou autre chose dans ces deux lignes

merci d'avance pour votre aide...
un documentaliste à l'arrache totale...
camzo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2007, 19h33   #2
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Regarde , SilkyRoad dit ça bien avant la fin de son post
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/04/2007, 21h46   #3
Membre du Club
 
Avatar de camzo
 
Inscription : décembre 2006
Messages : 135
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : décembre 2006
Messages : 135
Points : 50
Points : 50
merci bien mais mon code du dessus à fini par fonctionner. Une petite crasse qui gênait et surtout le nbl passé à 6000 et non à 15... comme ça, la macro a plus de chance de parcourir tout le fichier...


encore merci
camzo est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h11.


 
 
 
 
Partenaires

Hébergement Web