Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Autofit pour des lignes comporatnt des colonnes "fusionnées"

6 réponses
Avatar
Lulu la nantaise
Bonjour à tous,
Comment utiliser autofit sur des cellules fusionnées ?
*Daniel* m'avait indiqué la procédure suivante :
"
Bonjour.
Ajoute la macro suivante dans le code de ta feuille :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> Range("A1").Address Then Exit Sub
Rows(7).AutoFit
End Sub

qui suppose que ta formule est en ligne 7; change le numéro de ligne
suivant
tes besoins.
Cordialement.
Daniel
"
Qui fonctionne très biens sur les lignes sans colonne fusionnée ....

Merci beaucoup

6 réponses

Avatar
Daniel
Bonjour.
Ca dépend où sont les cellules fusionnées.
Si la formule est en E7 et que E7 et E8 sont fusionnées, essaie le code
suivant :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> Range("A1").Address Then Exit Sub
Range("E7").MergeCells = False
Rows(7).AutoFit
HauteurLigne = Rows(7).Height / 2
Rows("7:8").RowHeight = HauteurLigne
Range("E7:E8").MergeCells = True
End Sub

Cordialement.
Daniel
"Lulu la nantaise" a écrit dans le message de
news:
Bonjour à tous,
Comment utiliser autofit sur des cellules fusionnées ?
*Daniel* m'avait indiqué la procédure suivante :
"
Bonjour.
Ajoute la macro suivante dans le code de ta feuille :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> Range("A1").Address Then Exit Sub
Rows(7).AutoFit
End Sub

qui suppose que ta formule est en ligne 7; change le numéro de ligne
suivant
tes besoins.
Cordialement.
Daniel
"
Qui fonctionne très biens sur les lignes sans colonne fusionnée ....

Merci beaucoup




Avatar
Lulu la nantaise
Ca devrait le faire pour des colonnes de larguer identiques, sauf que bien
sur dans mon cas, les 2 colonnes n'ont pas la même largeur ...
En tout cas, merci pour ton aide si précieuse.
Cordialement
Lulu

"Daniel" a écrit dans le message de
news:
Bonjour.
Ca dépend où sont les cellules fusionnées.
Si la formule est en E7 et que E7 et E8 sont fusionnées, essaie le code
suivant :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> Range("A1").Address Then Exit Sub
Range("E7").MergeCells = False
Rows(7).AutoFit
HauteurLigne = Rows(7).Height / 2
Rows("7:8").RowHeight = HauteurLigne
Range("E7:E8").MergeCells = True
End Sub

Cordialement.
Daniel
"Lulu la nantaise" a écrit dans le message
de

news:
Bonjour à tous,
Comment utiliser autofit sur des cellules fusionnées ?
*Daniel* m'avait indiqué la procédure suivante :
"
Bonjour.
Ajoute la macro suivante dans le code de ta feuille :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> Range("A1").Address Then Exit Sub
Rows(7).AutoFit
End Sub

qui suppose que ta formule est en ligne 7; change le numéro de ligne
suivant
tes besoins.
Cordialement.
Daniel
"
Qui fonctionne très biens sur les lignes sans colonne fusionnée ....

Merci beaucoup








Avatar
Daniel
Peux-tu mettre un classeur avec ta problématique sur cijoint.com ?
Daniel
"Lulu la nantaise" a écrit dans le message de
news:
Ca devrait le faire pour des colonnes de larguer identiques, sauf que bien
sur dans mon cas, les 2 colonnes n'ont pas la même largeur ...
En tout cas, merci pour ton aide si précieuse.
Cordialement
Lulu

"Daniel" a écrit dans le message de
news:
Bonjour.
Ca dépend où sont les cellules fusionnées.
Si la formule est en E7 et que E7 et E8 sont fusionnées, essaie le code
suivant :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> Range("A1").Address Then Exit Sub
Range("E7").MergeCells = False
Rows(7).AutoFit
HauteurLigne = Rows(7).Height / 2
Rows("7:8").RowHeight = HauteurLigne
Range("E7:E8").MergeCells = True
End Sub

Cordialement.
Daniel
"Lulu la nantaise" a écrit dans le message
de

news:
Bonjour à tous,
Comment utiliser autofit sur des cellules fusionnées ?
*Daniel* m'avait indiqué la procédure suivante :
"
Bonjour.
Ajoute la macro suivante dans le code de ta feuille :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> Range("A1").Address Then Exit Sub
Rows(7).AutoFit
End Sub

qui suppose que ta formule est en ligne 7; change le numéro de ligne
suivant
tes besoins.
Cordialement.
Daniel
"
Qui fonctionne très biens sur les lignes sans colonne fusionnée ....

Merci beaucoup












Avatar
anonymousA
Bonjour,

un exemple ci-dessous de l'adaptation pour la ligne 2 p.e

Sub Merge()

Dim mergecollection As New Collection, c As Range, rh As Double

On Error Resume Next

For Each c In Range("A2:IV2")
If c.MergeCells Then mergecollection.Add c.MergeArea,
CStr(c.MergeArea.Cells(1).Address(0, 0))
Next

On Error GoTo 0

rh = 0
For I = 1 To mergecollection.Count
With mergecollection(I)
.UnMerge
With .Cells(1).EntireRow
.AutoFit
If .RowHeight < rh Then
.RowHeight = rh
Else
rh = .RowHeight
End If
End With
.Merge
End With
Next

End Sub


A+


Ca devrait le faire pour des colonnes de larguer identiques, sauf que bien
sur dans mon cas, les 2 colonnes n'ont pas la même largeur ...
En tout cas, merci pour ton aide si précieuse.
Cordialement
Lulu

"Daniel" a écrit dans le message de
news:

Bonjour.
Ca dépend où sont les cellules fusionnées.
Si la formule est en E7 et que E7 et E8 sont fusionnées, essaie le code
suivant :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> Range("A1").Address Then Exit Sub
Range("E7").MergeCells = False
Rows(7).AutoFit
HauteurLigne = Rows(7).Height / 2
Rows("7:8").RowHeight = HauteurLigne
Range("E7:E8").MergeCells = True
End Sub

Cordialement.
Daniel
"Lulu la nantaise" a écrit dans le message


de

news:

Bonjour à tous,
Comment utiliser autofit sur des cellules fusionnées ?
*Daniel* m'avait indiqué la procédure suivante :
"
Bonjour.
Ajoute la macro suivante dans le code de ta feuille :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> Range("A1").Address Then Exit Sub
Rows(7).AutoFit
End Sub

qui suppose que ta formule est en ligne 7; change le numéro de ligne
suivant
tes besoins.
Cordialement.
Daniel
"
Qui fonctionne très biens sur les lignes sans colonne fusionnée ....

Merci beaucoup












Avatar
Lulu la nantaise
Ouh là très compliqué pour moi, j'vais recopier ce WE à tête reposée
Merci beaucoup
Lulu
"anonymousA" a écrit dans le message de
news:434c19b0$0$27432$
Bonjour,

un exemple ci-dessous de l'adaptation pour la ligne 2 p.e

Sub Merge()

Dim mergecollection As New Collection, c As Range, rh As Double

On Error Resume Next

For Each c In Range("A2:IV2")
If c.MergeCells Then mergecollection.Add c.MergeArea,
CStr(c.MergeArea.Cells(1).Address(0, 0))
Next

On Error GoTo 0

rh = 0
For I = 1 To mergecollection.Count
With mergecollection(I)
.UnMerge
With .Cells(1).EntireRow
.AutoFit
If .RowHeight < rh Then
.RowHeight = rh
Else
rh = .RowHeight
End If
End With
.Merge
End With
Next

End Sub


A+


Ca devrait le faire pour des colonnes de larguer identiques, sauf que
bien


sur dans mon cas, les 2 colonnes n'ont pas la même largeur ...
En tout cas, merci pour ton aide si précieuse.
Cordialement
Lulu

"Daniel" a écrit dans le message de
news:

Bonjour.
Ca dépend où sont les cellules fusionnées.
Si la formule est en E7 et que E7 et E8 sont fusionnées, essaie le code
suivant :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> Range("A1").Address Then Exit Sub
Range("E7").MergeCells = False
Rows(7).AutoFit
HauteurLigne = Rows(7).Height / 2
Rows("7:8").RowHeight = HauteurLigne
Range("E7:E8").MergeCells = True
End Sub

Cordialement.
Daniel
"Lulu la nantaise" a écrit dans le message


de

news:

Bonjour à tous,
Comment utiliser autofit sur des cellules fusionnées ?
*Daniel* m'avait indiqué la procédure suivante :
"
Bonjour.
Ajoute la macro suivante dans le code de ta feuille :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> Range("A1").Address Then Exit Sub
Rows(7).AutoFit
End Sub

qui suppose que ta formule est en ligne 7; change le numéro de ligne
suivant
tes besoins.
Cordialement.
Daniel
"
Qui fonctionne très biens sur les lignes sans colonne fusionnée ....

Merci beaucoup














Avatar
anonymousA
Ben ce n'est pas si compliqué.

Le principe:

On parcourt l'ensemble de la plage A2 à IV2 et on recherche si les
cellules de la plage en question appartiennent à une plage de cellules
fusionnées. On constitue une collection ( mergecollection) des plages de
cellules de chaque plage fusionnée.

Une fois ceci fait, on est en possession d'un collection ne contenant
que les addresses de toutes les plages qui font l'objet d'une fusion de
cellules

On va alors parcourir cette collection en ne s'intéressant bien sur qu'à
la 1ere cellule de chaque plage car Excel met la valeur d'une plage
fusionnée dans la cellule la plus en haut à gauche donc ce qui tombe
bien dans la cellule N°1 ( cells(1))

Dans ce cas, chaque fois qu'on parcourt I alors, il faut ajuster la
taille de la ligne With .Cells(1).EntireRow
.AutoFit

Or si on parcourt l'intégralité des plages fusionnées, il est bien clair
que la hauteur de ligne de chacune des premières cellules de ces plages
peut être différente. Il faut donc bien garder la borne supérieure de
ces tailles de ligne pour être certain que la plus grande des tailles de
ligne puisse accueillir le plus grand des textes des premières cellules
des plages fusionnées, ce que l'on fait en conservant rh si le
rowheight du moment lui est inférieur et rowheight lui-même dans le cas
contraire.

Voilà, c'est fini.

A+


Ouh là très compliqué pour moi, j'vais recopier ce WE à tête reposée
Merci beaucoup
Lulu
"anonymousA" a écrit dans le message de
news:434c19b0$0$27432$

Bonjour,

un exemple ci-dessous de l'adaptation pour la ligne 2 p.e

Sub Merge()

Dim mergecollection As New Collection, c As Range, rh As Double

On Error Resume Next

For Each c In Range("A2:IV2")
If c.MergeCells Then mergecollection.Add c.MergeArea,
CStr(c.MergeArea.Cells(1).Address(0, 0))
Next

On Error GoTo 0

rh = 0
For I = 1 To mergecollection.Count
With mergecollection(I)
.UnMerge
With .Cells(1).EntireRow
.AutoFit
If .RowHeight < rh Then
.RowHeight = rh
Else
rh = .RowHeight
End If
End With
.Merge
End With
Next

End Sub


A+



Ca devrait le faire pour des colonnes de larguer identiques, sauf que



bien

sur dans mon cas, les 2 colonnes n'ont pas la même largeur ...
En tout cas, merci pour ton aide si précieuse.
Cordialement
Lulu

"Daniel" a écrit dans le message de
news:


Bonjour.
Ca dépend où sont les cellules fusionnées.
Si la formule est en E7 et que E7 et E8 sont fusionnées, essaie le code
suivant :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> Range("A1").Address Then Exit Sub
Range("E7").MergeCells = False
Rows(7).AutoFit
HauteurLigne = Rows(7).Height / 2
Rows("7:8").RowHeight = HauteurLigne
Range("E7:E8").MergeCells = True
End Sub

Cordialement.
Daniel
"Lulu la nantaise" a écrit dans le message


de


news:


Bonjour à tous,
Comment utiliser autofit sur des cellules fusionnées ?
*Daniel* m'avait indiqué la procédure suivante :
"
Bonjour.
Ajoute la macro suivante dans le code de ta feuille :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> Range("A1").Address Then Exit Sub
Rows(7).AutoFit
End Sub

qui suppose que ta formule est en ligne 7; change le numéro de ligne
suivant
tes besoins.
Cordialement.
Daniel
"
Qui fonctionne très biens sur les lignes sans colonne fusionnée ....

Merci beaucoup