Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
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 09/02/2010, 14h39   #1
Futur Membre du Club
 
Date d'inscription: juillet 2009
Messages: 33
Par défaut Selectionner Cellules - Les fusionner et passer aux suivantes

Bon j'ai l'impression de partir dans un truc trop compliqué... ça peut marcher, mais vu que je m'acharne dessus, je dois manquer de lucidité, alors j'en profite pour voir si quelqu'un n'aurait pas une meilleure idée.

J'ai une colonne comme ceci :

Citation:
Champ1
Champ2
Champ2
Champ3
Champ3
Champ4
Champ5
Champ5
Champ5
Champ5
.....
Je veux fusionner les cases ayant un champ identique avec, si possible :
le fait que cela marche si j'ajoute/change des champs, le fait que cela marche si la liste s'agrandit.

Code :
Sub Fusion()
 
Dim ligne As Integer
Dim blop As Integer
Application.DisplayAlerts = False
 
ligne = 12
 
 
If Range("A" & ligne & "").Value <> Range("A" & ligne & "").Offset(-1).Value Then
blop = ligne
Do Until Range("A" & ligne & "").Value = Range("A" & ligne & "").Offset(-1).Value
If Range("A" & ligne & "").Offset(1).Value = Range("A" & blop & "").Value Then
Range(Range("A" & blop & ""), Range("A" & ligne & "").Offset(1)).Select
With Selection
        .HorizontalAlignment = xlLeft
         .VerticalAlignment = xlCenter
         .WrapText = False
         .Orientation = 0
         .AddIndent = False
         .ShrinkToFit = True
         .MergeCells = True
End With
'blop = ligne + 1
End If
'Selection.Merge
ligne = ligne + 1
Loop
End If
Application.DisplayAlerts = True
 
End Sub

Voilà mon usine à gaz !

Sauf qu'actuellement ça ne marche (un peu) que si je démarre au milieu de la colonne (ligne 12), si je commence à la ligne 6, ça ne fait rien (normal surement, car c'est un champ unique).
Et si je tombe sur le Champ 5, cela ne me prend que 3 cases au lieu des 4 qui le contiennent.
Ensuite j'ai du mal à passer aux cellules suivantes, une fois la fusion effectuée.

Je vais mettre ça de côté un peu, le temps que ça retombe et que je retrouve un peu de lucidité déjà.

Merci pour ceux qui auraient une idée.

PS: j'ai déjà fait quelque chose du genre qui marchait mais c'était plus simple car il y avait des cases vides entre chaque champ différent, et je n'avais qu'à faire des xldown, sélectionner, fusionner. Là ça m'embête un peu plus.
Roums est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 10/02/2010, 02h41   #2
Membre Expert
 
Date d'inscription: juillet 2008
Messages: 1 243
Par défaut

Une proposition
les données commencent en A1 jusqu'à Axx
Code :
sub MergeCells()
dim i as long
application.displayalerts = false
for i = cells(rows.count, 1).end(xlup).row to 2 step -1
    if range("a" & i - 1).value = range("a" & i).value then range("a" & i - 1 & ":a" & i).aerge
next i
end sub
les données de la colonne A doivent être triées bien sûr
__________________
Cordialement.
mercatog est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 10/02/2010, 11h31   #3
Futur Membre du Club
 
Date d'inscription: juillet 2009
Messages: 33
Par défaut

La colonne a est effectivement triée, du coup ça semble marcher parfaitement... et ça semble bien plus simple que ce sur quoi je m'engageais... je n'utilise jamais les Rows.Count mais ça semble bien utile dans certains cas.

Merci beaucoup mercatog!
Roums est déconnecté   Envoyer un message privé Réponse avec citation
NEWS EXCELF.A.Q EXCELTUTORIELS EXCELSOURCES EXCELOUTILS EXCELLIVRES EXCELOFFICE 2010

Réponse Proposer ce sujet en actualité

Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel



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 non
Pingbacks are non
Refbacks are non



Fuseau horaire GMT +1. Il est actuellement 19h29.


Vos questions techniques : forum d'entraide Excel - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Hébergement - Participez - Copyright © 2000-2010 www.developpez.com - Legal informations.