Elargir automatiquement colonne B:Z sur ligne 5 à 25

Bonjour,

Je recherche à élargir les colonnes B à Z automatiquement en fonction du nombres de lettres écrites dans la colonne et cela sur les lignes 5 à 25.

S'il y a plus de lignes et plus de colonnes, cela n'aura aucune incidence pour moi.

En revanche, il ne faut pas que la colonne A soit impactée par l'élargissement des colonnes. Il faudrait qu'elle reste FIXE.

J'ai bien trouvé une fonction Cells.EntireColumn.AutoFit mais, celle-ci modifie toutes les colonnes en élargissant la colonne A.

Si quelqu'un peut m'aider.

En vous remerciant.

Bien cordialement.


Bonjour,

Ci-contre un test :

Sub LARGEUR()
ActiveSheet.Columns("B:Z").AutoFit
ActiveSheet.UsedRange.Rows.AutoFit
End Sub

A noter que j'ai fait un renvoi automatique à la ligne pour les lignes en dessous de 25 afin de ne pas masquer le texte si sa longueur est supérieure à la largeur de la colonne, à ce moment là on ajuste la auteur de ligne (d'où le autofit sur les rows).

Cdlt,

10classeur1.xlsm (13.52 Ko)

Bonsoir,

Impeccable, cela fonctionne.

En vous remerciant.

Y a t il la possibilité que cette colonne s'élargisse lorsque l'on a validé la sélection de la colonne sans repasser par un bouton de macro.

Avec cette fonction, Cells.EntireColumn.AutoFit lorsque je fais entrée, la colonne s'élargît de suite. Est il possible de faire la même chose avec votre macro qui ne touche pas à la colonne A.

Une fonction simple comme la votre, pas une usine à gaz

Merci.

Bien cordialement

Bonjour,

Dans ce cas on peut l'inclure dans le module de la feuille en question et regarder si le changement à lieu sur la plage B1:E25 :

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, [B1:E25]) Is Nothing Then
    ActiveSheet.Columns("B:E").AutoFit
    ActiveSheet.UsedRange.Rows.AutoFit
End If
End Sub

Avec le fichier joint pour que vous adaptiez à votre fichier.

Cdlt,

Re

Là, moi pas comprendre..............

Ma feuille est verrouillée, sauf mon cadre B5:Q18 de façon à lorsque j'arrive en Q5, mes entrées étant finies, je reviens me repositionner en B6.

Cela fonctionne bien.

Mais ma feuille est protégée.

Il faut que je fasse Oter la protection de la feuille pour que votre macro fonctionne autrement j'ai:

Erreur d'execution'1004':

La méthode Autofit de la classe Range a échoué.

Pourtant mes cellules ne sont pas verrouillées

HUUMUMUMUMUMUMUMUMUMMMMMMMMMMMMM

Bonjour,

Quelque soit les cellules renseignées, la largeur et hauteur des lignes appartient à la feuille et non pas à la cellule car les colonnes et lignes sont des objets de la feuille. Dans ce cas il faut passer par ce code, toujours à placer dans le code de votre feuille d'intérêt :

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, [B1:E25]) Is Nothing Then
    ActiveSheet.Unprotect "Votre MDP" 'Précisez votre MDP à la place de Votre MDP, laissez les guillemets
    ActiveSheet.Columns("B:E").AutoFit
    ActiveSheet.UsedRange.Rows.AutoFit
    ActiveSheet.Protect "Votre MDP" 'Précisez votre MDP à la place de Votre MDP, laissez les guillemets
End If
End Sub

Après, si vous avez des propriétés particulières lors de la protection de votre feuilles (les cases à cocher du type format, largeur de colonne, filtre, etc etc ...) merci de les préciser pour adapter le code. Sinon vous pouvez le tester en l'état en modifiant le MDP comme précisé dans le code.

Cdlt,

Merci pour les explications.

Cela fonctionne à merveille.

Vous êtes génial.

Et qui plus est, la macro dans un classeur.............................servie sur un plateau et le summum AVEC EXPLICATIONS.

Que du bonheur.

Merci pour tout.

Bien cordialement.

Rechercher des sujets similaires à "elargir automatiquement colonne ligne"