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 24/09/2007, 01h03   #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] : fusionner cellules vides dans tableau

Bonsoir à tous,

J'avais déjà obtenu une superbe réponse pour mon problème mais pour un exemple hors tableau. Et comme je n'arrive pas à faire le transfert, je vous expose mon problème :

j'ai un énorme tableau avec des cellules vides que je veux fusionner avec la cellule qui est au-dessus dans la même colonne. Du style :

pour le moment, j'ai :

|----------|
| 1 | 2 | 1 |
|----------|
| 0 | 2 | 1 |
|----------|
| 0 | 2 | 1 |
|----------|
| 2 | 2 | 1 |
|----------|

0 = cellule vide

et ce que j'aimerais :

|----------|
| 1 | 2 | 1 |
| |--------|
| | 2 | 1 |
| |--------|
| | 2 | 1 |
|----------|
| 2 | 2 | 1 |
|----------|

Voilà, si quelqu'un avait une idée du code...

en tout cas, j'avais de ce style façon paragraphe ici

merci à celui ou celle qui sera inspiré !

camzo
camzo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/09/2007, 07h31   #2
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 354
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

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

Informations forums :
Inscription : février 2006
Messages : 17 354
Points : 29 270
Points : 29 270
Tu n'as pas essayé de modifier un peu le code pour fusionner deux cellules identiques ?

C'est le même principe, sauf que pour le test, tu vérifies si les cellules sont vides et pas simplement identiques.
__________________
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 !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/09/2007, 08h26   #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
ouais,je sais bien...

voilà ce que j'ai fait pour le moment :

j'ai un fichier world avec des répétitions :

| contenu1 | contenu3 |
| contenu1 | contenu4 |
| contenu1 | contenu5 |

je voulais toujours dans world 2007 obtenir :

| contenu1 | contenu3 |
| '''''''''''''''''''' | contenu4 |
| '''''''''''''''''''' | contenu5 |

NB : les ''' sont là uniquement pour mettre en forme l'exemple

bref, je voulais une fusion des cellules identiques dans la colonne 1 sans que la colonne 2 soit altérée.

Malheureusement, je n'ai pas réussi avec world 2007 car ma macro ne fonctionne qu'avec world 2003. C'est comme ça.

j'ai alors exporter le fichier world sous excel 2007

j'ai alors trouvé une macro qui me permettait justement de faire cette fusion. En voici le contenu :

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
Sub fusion()
 
Cell_Départ = "A1"
Dim Fin As Range, i As Long, J As Long, Col As Integer
Dim ModeCalcul As Long
 
With Application
ModeCalcul = .Calculation
.Calculation = xlCalculationManual
.ScreenUpdating = False
End With
 
Col = Range(Cell_Départ).Column
Set Fin = Range(Cell_Départ).End(xlDown)(2)
 
On Error Resume Next
Do
i = J + 1
J = Range(Cells(i, Col), Fin).ColumnDifferences(Cells(i, Col))(0).Row
If Err Then Exit Do
If J > i Then Range(Cells(i + 1, Col), Cells(J, Col)).ClearContents
Loop
If i < Fin.Row Then Range(Cells(i + 1, Col), Fin).ClearContents
 
Application.Calculation = ModeCalcul
 
End Sub
là, j'ai enfin pu obtenir une partie de cette fusion en obtenant la disparition du contenu des cellules identiques !!!

j'ai donc obtenu :

| contenu1 | contenu3 |
| '''''''''''''''''''' | contenu4 |
| '''''''''''''''''''' | contenu5 |

malheureusement, je n'ai pas réussi à fusionner... autrement dit, j'ai toujours les séparation entre cellules qui apparaissent. Voilà ce que je veux dire :

| contenu1 | contenu3 |
-----------------------
| '''''''''''''''''''' | contenu4 |
-----------------------
| '''''''''''''''''''' | contenu5 |

bref, je crois que je vais encore agir à la main (sélection des cellules > clic droit > fusionner).

Tant pis, c'est comme ça !!!

voilà voilà...

camzo
camzo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/09/2007, 08h54   #4
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 354
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

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

Informations forums :
Inscription : février 2006
Messages : 17 354
Points : 29 270
Points : 29 270
La macro modifiée ne fonctionne pas ?
__________________
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 !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/09/2007, 14h37   #5
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
non, j'ai toujours des problèmes et je ne me suis pas remis dessus car je ne trouvais pas la faute....

Merci quand même !!!!


camzo


PS : je poste un comm si je trouve quelque-chose d'autre mais, y a peu de chance à mon avis...
camzo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/09/2007, 14h52   #6
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 354
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

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

Informations forums :
Inscription : février 2006
Messages : 17 354
Points : 29 270
Points : 29 270
Pour les cellules vides, j'ai un peu réfléchi, c'est une macro plus lourde qu'il n'y parraît.
En effet, il faut marque la première cellule vide, vérifier les suivantes, si la suivante est vide, passer à la suivante.
Si elle n'est pas vide, enlever la marque de la cellule marquée.
Reprendre, si deux ou plus de cellules sont vides, les fusionner.
__________________
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 !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/09/2007, 17h01   #7
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
comme tu dis, c'est plus compliqué que ça... l'informaticien de la fac de béziers a tenté de me résoudre ça mais en vain... alors, je laisse tombé. Eh oui, je ne suis qu'un petit documentaliste !!! autrement dit, je me débrouille mais j'ai des limites. Mais bon, si tu es bloqué un jour n'importe où dans le monde et que tu n'as plus que ton ordi sous la main, n'hésites pas à résoudre cette macro !!!
camzo est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h53.


 
 
 
 
Partenaires

Hébergement Web