VBA : ajustement des lignes et des colonnes

  • Initiateur de la discussion Initiateur de la discussion cibleo
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

cibleo

XLDnaute Impliqué
Bonsoir le forum,

Dans le module 1 du fichier joint (trouvé sur le forum) , figure une macro qui ajuste la hauteur de lignes en fonction de leur contenu.

J'aimerais la compléter pour ajuster aussi la largeur des colonnes.

Les colonnes à prendre en compte sont les colonnes C, D et E.

Pouvez-vous m'aider ?

Amicalement Cibleo
 

Pièces jointes

Dernière édition:
Re : VBA : ajustement des lignes et des colonnes

Re à tous,
Bonjour JCGL,

J'ai voulu rajouter les instructions en rouge, mais ça ne colle pas 😕

Code:
Sub Ajuste_Hauteur_ligne()
Dim derligne As Integer
[COLOR=red]Dim dercol As Integer[/COLOR]
[COLOR=green]'derligne = Range("c1:e65536").End(xlUp).Row[/COLOR]
    derligne = ActiveSheet.Cells.Find(what:="*", after:=[A1], searchorder:=xlByRows, searchdirection:=xlPrevious).Row
    [COLOR=red]dercol = ActiveSheet.Cells.Find(what:="*", after:=[A1], searchorder:=xlByColumns, searchdirection:=xlPrevious).Column[/COLOR]
        ActiveSheet.Rows("03:" & derligne).AutoFit
        [COLOR=red]ActiveSheet.Columns("03:" & dercol).AutoFit[/COLOR]
 
    For i = 3 To derligne
        ActiveSheet.Rows(i).RowHeight = ActiveSheet.Rows(i).RowHeight + 5
        [COLOR=darkgreen]'ActiveSheet.Columns(i).ColumnWidth = ActiveSheet.Columns(i).ColumnWidth[/COLOR]
    Next
End Sub

Cibleo
 
Re : VBA : ajustement des lignes et des colonnes

Bonjour à tous,

Essaye ceci :

Code:
Sub Ajuste_Hauteur_ligne()
Dim derligne As Integer

'derligne = Range("c1:e65536").End(xlUp).Row

    derligne = ActiveSheet.Cells.Find(what:="*", after:=[A1], searchorder:=xlByRows, searchdirection:=xlPrevious).Row
       
        ActiveSheet.Rows("03:" & derligne).AutoFit
    For i = 3 To derligne
        ActiveSheet.Rows(i).RowHeight = ActiveSheet.Rows(i).RowHeight + 5
    Next
    
[B][COLOR=Blue]Columns("A:Z").Columns.AutoFit[/COLOR][/B]
End Sub

A+ à tous
 
Re : VBA : ajustement des lignes et des colonnes

Re à tous,

Cela semble fonctionner, mais il y a une chose que je ne m'expliques pas.

En C8, j'ai répeter 4 fois le mot samedi dont le dernier avec un retour à la ligne ---> voir dans la barre de formule.

Après exécution de la macro, cela ne s'ajuste pas comme dans la barre de formule, c'est à dire sur 2 lignes et non pas 3 !

Cibleo
 

Pièces jointes

Re : VBA : ajustement des lignes et des colonnes

Bonjour à tous,
Bonjour JCGL,

Dans le cas présent, C8 devait conditionner la largeur de la colonne C.

J'ai modifié comme ceci et cela fonctionne parfaitement, l'ajustement automatique des colonnes se fait correctement dans tous les cas de figures.


Code:
Sub Ajuste_Hauteur_ligne()
Dim derligne As Integer
'derligne = Range("c1:e65536").End(xlUp).Row
    derligne = ActiveSheet.Cells.Find(what:="*", after:=[A1], searchorder:=xlByRows, searchdirection:=xlPrevious).Row
        [COLOR=red]Columns("C:E").Columns.AutoFit[/COLOR]
        ActiveSheet.Rows("03:" & derligne).AutoFit
    For i = 3 To derligne
        ActiveSheet.Rows(i).RowHeight = ActiveSheet.Rows(i).RowHeight + 5
    Next
End Sub

Avant, cela "buggait" légèrement si initialement la largeur de la colonne était inférieure au contenu de C8.

Pas très clair mon explication 🙄, mais faites un essai en modifiant manuellement la largeur de la colonne C, éxécuter la macro et vous allez comprendre (regardez en C8).

Merci JCGL

Amicalement Cibleo
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
676
  • Question Question
Microsoft 365 Code VBA
Réponses
7
Affichages
1 K
Retour