Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Excel > VBA Excel

Réponse
 
Outils de la discussion
Vieux 10/10/2008, 09h18   #1 (permalink)
Invité de passage
 
Date d'inscription: octobre 2008
Messages: 2
Par défaut Fusion automatique conditionnée

Bonjour à tous...

je vient de mettre le nez dans les macro et dans vba... c'est pas simple... voici ce que je souhaite faire :

je souhaite fusionner automatiquement des cellules identiques dans des colonnes identifiées (c'est à dire uniquement dans les colonnes de mon choix : ici les colonnes F K et M et uniquement pour des cellules adjacentes verticalement).

S'il était possible, je souhaiterai que cela se fasse dans une autre feuille afin de conserver la possibilité de trier et de calculer comme bon me semble dans le fichier "source"...


A la lecture du forum j'ai vu qu'il était possible de s'orienter vers un tableau croisé dynamique mais je ne suis pas convaincu...

j'ai tenté ce code sans succès :

'
Code :
Mes valeurs sont dans la colonne A
Dim Deb As Long
 
Range("A1").Select
Application.DisplayAlerts = False
Deb = -1
While Not IsEmpty(ActiveCell)
If ActiveCell.Value = ActiveCell.Offset(1).Value Then
If Deb = -1 Then Deb = ActiveCell.Row
Else
If Deb <> -1 Then
With Range("A" & Deb & ":A" & ActiveCell.Row)
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.MergeCells = True
End With
Deb = -1
End If
End If
ActiveCell.Offset(1).Select
Wend
Application.DisplayAlerts = True
 

et celle ci aussi...mais visiblement il y a une "erreur de compilation /erreur de syntaxe" à la ligne :
Code :
C1 = Range('A' & i) = Range('B' & i)

Code :
Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 06/02/2006 par ADSLHY
'
 
'
Application.ScreenUpdating = False 'fige l'affichage de l'écran
Application.EnableEvents = False 'Supprime certain message d'alerte windows
 
 
For i = 2 To 10 'choisissez de quelle ligne a quel ligne doit ce faire les fusion
 
'C1 & C2 sont les condition qui permettent de savoir si An=Bn et si Bn=Cn
C1 = Range('A' & i) = Range('B' & i)
C2 = Range('B' & i) = Range('C' & i)
 
If (C1 = True And C2 = True) Then 'si C1 et C2 sont vrai alors fusion cellule ABCn
Range('B' & i, 'C' & i).Select
Selection.ClearContents
Range('A' & i, 'C' & i).Select 'selection An;Cn
With Selection 'fusion
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.ShrinkToFit = False
.MergeCells = False
End With
Selection.Merge
End If
Next i
Application.ScreenUpdating = True
 
Application.EnableEvents = True
 
End Sub
 
Je me repère vaguement dans le code mais en fait j'y comprends rien...

En Pièce Jointe un exemple de ce sur quoi je travaille...anonymé et réduit à quelques lignes...

Merci de vos conseils...
Fichiers attachés
Type de fichier : xls TEST Fusion1-1.xls (37,5 Ko, 1 affichages)
PièceJointe est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 10/10/2008, 09h26   #2 (permalink)
Rédacteur/Modérateur
 
Avatar de Pierre Fauconnier
 
Date d'inscription: novembre 2003
Localisation: Theux (Belgique)
Âge: 41
Messages: 3 112
Envoyer un message via Skype™ à Pierre Fauconnier
Par défaut

Bonjour, et bienvenue sur nos forums.

1. A priori, je ne vois pas de lien direct entre fusion de cellules et tableau croisé dynamique

2. Dans ton exposé, tu parles des colonnes K, L, M, alors que dans le code de ta macro, tu as un commentaire qui dit que tes données sont en A

3. Ton fichier d'exemple est tellement bien "anonymé" que je n'ai rien compris de ce que tu souhaitais réalisé lorsque je l'ai ouvert...

__________________
Pierre Fauconnier
--------------------
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
Pensez au tag

Mon blog sur DVP - Mes petits papiers sur DVP
Je ne peux en aucun cas être tenu pour responsable des conséquences de l'utilisation des codes que je fournis dans le cadre des réponses apportées sur les forums, même s'il s'avérait que ces codes sont erronés ou amènent à des dysfonctionnements, de manière manifeste ou non.
Pierre Fauconnier est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 10/10/2008, 09h57   #3 (permalink)
Invité de passage
 
Date d'inscription: octobre 2008
Messages: 2
Par défaut

Bonjour,

Effectivement mon fichier est moche...je refais un fichier type...

Pour les codes oublions...c'estla première fois que je prends VBA en main...j'ai pris un truc fait pour un autre fichier pour le tester et j'ai pas touché aux variables... juste pour le faire tourner...mais comme il tourne pas....

Pour le croisé dynamique je suis effectivement du même avis, ça ne me convient pas.... d'où le post...

Je pense qu'avec les nouveaux docs ce sera plus clair...

merci du temps passé à tenter de me comprendre...
Fichiers attachés
Type de fichier : xls départ.xls (40,0 Ko, 0 affichages)
Type de fichier : xls arrivée.xls (40,0 Ko, 0 affichages)
PièceJointe est déconnecté   Envoyer un message privé Réponse avec citation
NEWS MS-OFFICEFAQs OFFICETUTORIELS OFFICELIVRES OFFICESOURCES VBAACCESS

Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Excel > VBA Excel

 
Offres d' emploi informatique sur Lesjeudis.com


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
Navigation rapide