VBA : ajustement des lignes et des colonnes

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

  • finddate.xls
    29.5 KB · Affichages: 189
  • finddate.xls
    29.5 KB · Affichages: 165
  • finddate.xls
    29.5 KB · Affichages: 175
Dernière édition:

cibleo

XLDnaute Impliqué
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 :confused:

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
 

JCGL

XLDnaute Barbatruc
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
 

cibleo

XLDnaute Impliqué
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

  • finddate1.xls
    29.5 KB · Affichages: 86

cibleo

XLDnaute Impliqué
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 :rolleyes:, 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
 

Discussions similaires

Statistiques des forums

Discussions
312 115
Messages
2 085 447
Membres
102 889
dernier inscrit
monsef JABBOUR