Macro pour "de"fusionner des cellules

orphelion

XLDnaute Occasionnel
Bonjour a tous, bonjour le Forum,

Je souhaite faire une macro pour "de"fusionner les colonnes A et B ainsi que les colonnes GHIJ de mon fichier pour pouvoir ensuite le remettre dans un autre format.
je travaille sous excel 2010 anglais.

Je pensais utiliser l'outil enregistrement de macro malheureusement cela ne fonctionne pas...
j'ai une erreur "procedure trop longue". peu etonnant etant donne que mon fichier va juqu'a 6000 lignes dans sa version complete.

J'ai attache une version light. J'imagine qu'une boucle d'iteration pour regarder chaque cellule enchainant dans les colonnes qui nous interesse (ie A et G) et faisant l'operation defusionner jusqu'au la fin de la colonne serait une option.
qu'en dites vous?
Je debute sous VBA donc l'iteration n'est pas encore mon fort. Avec votre aide j'espere que ca va changer:)
Si vous avez d'autre fonction utiles pour faire cela merci de me les faire connaitre.

merci d'avance pour votre aide.
 

Pièces jointes

  • unmerge columns.xlsm
    18.4 KB · Affichages: 172

Staple1600

XLDnaute Barbatruc
Re : Macro pour "de"fusionner des cellules

Bonjour orphelion

Essaies les codes ci-dessous:
La première fusionne les plages de cellules A1:B10 et G1:G10
La seconde les défusionne.
VB:
Sub fuze()
Union(Range("A1:B10"), Range("G1:J10")).MergeCells = True
End Sub
VB:
Sub defuze()
Union(Range("A1:A10"), Range("G1:G10")).MergeCells = False
End Sub

A adapter à la configuration de ton classeur.
 

orphelion

XLDnaute Occasionnel
Re : Macro pour "de"fusionner des cellules

Merci Beaucoup Staple1600. Super pratique et ultra rapide comme methode:)
Une autre question qui devrait s'averer tout aussi rapide a regler.
Daans ce meme tableau j'ai deux colonnes au format D et G avec des chiffres mais excel ne les prends pas au format nombre...
est ce que tu aurais une astuces pour cela?
merci d'avance
 

orphelion

XLDnaute Occasionnel
Re : Macro pour "de"fusionner des cellules

Bonjour a tous,

Code:
Sub ConvertText()
    Columns("G").Select
    For Each cell In Selection
        cell.Value = Val(cell.Value)
    Next
    Selection.NumberFormat = "General"
End Sub
j'ai essaye de convertir mes cellules dans la colonnes G avec ce code mais ca plante... est ce que quelqu'un saurait corriger ce code?

merci!
 

orphelion

XLDnaute Occasionnel
Re : Macro pour "de"fusionner des cellules

J'ai trouve wouhou:)
pour ceux que cela peut interesser:
Code:
Sub ConvertText()
   Range("G1").Select
   Range(Selection, Selection.End(xlDown)).Select
    For Each cell In Selection
        cell.Value = Val(cell.Value)
    Next
    Selection.NumberFormat = "General"
End Sub

a++
 

Staple1600

XLDnaute Barbatruc
Re : Macro pour "de"fusionner des cellules

Re


Bravo pour ta persévérance, orphelion;)

Une suggestion néanmoins
Il est préférable d'éviter autant que faire se peut les Select, Activate et cie

Voici un exemple en reprenant le code de ta macro initiale
Code:
Sub ConvertTextBis()
Dim r As Range, cell As Range
   With ActiveSheet
    Set r = .[G1].Resize(.[G65536].End(xlUp).Row)
   End With
    For Each cell In r
        cell.Value = Val(cell.Value)
    Next
    r.NumberFormat = "General"
Set r = Nothing
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 493
Messages
2 088 952
Membres
103 989
dernier inscrit
jralonso