Largeur colonne
Résolu
pascalou83400
Messages postés
281
Statut
Membre
-
pascalou83400 Messages postés 281 Statut Membre -
pascalou83400 Messages postés 281 Statut Membre -
Bonjour,
Je cherche le code pour mettre une colonne en forme par rapport à son plus grand contenu, mais je veux commencer à la ligne A18 et finir à la dernière de mon tableau, qui varie suivant les données récupérées.
Merci pour votre aide.
Je cherche le code pour mettre une colonne en forme par rapport à son plus grand contenu, mais je veux commencer à la ligne A18 et finir à la dernière de mon tableau, qui varie suivant les données récupérées.
Merci pour votre aide.
A voir également:
- Largeur colonne
- Déplacer colonne excel - Guide
- Trier colonne excel - Guide
- Colonne word - Guide
- Formule somme excel colonne - Guide
- Figer colonne excel - Guide
10 réponses
Bonjour pascalou83400,
Essayez donc avec cette procédure :
Essayez donc avec cette procédure :
Sub colonnes()
Dim nbli As Integer
nbli = Cells(Rows.Count, 1).End(xlUp).Row
Range("A18:AI" & nbli).Columns.AutoFit
Columns("B:B").ColumnWidth = 13
Columns("C:C").ColumnWidth = 15.5
Columns("F:F").ColumnWidth = 13.5
Columns("K:K").ColumnWidth = 14.5
Columns("L:L").ColumnWidth = 14.5
Columns("M:M").ColumnWidth = 38
Columns("P:P").ColumnWidth = 14.5
Columns("Q:Q").ColumnWidth = 14.5
Columns("U:U").ColumnWidth = 17
With Range("A18:B" & nbli & "," & "E18:AI" & nbli)
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
End With
With Range("C18:D" & nbli)
.HorizontalAlignment = xlLeft
.VerticalAlignment = xlBottom
End With
End Sub
Non : une colonne ne peut pas avoir des largeurs différentes !
Tu ne peux faire cela que sur Word, où les tableaux sont dessinés, et non automatiques comme dans Excel.
C'est bien, la retraite ! Surtout aux Antilles ... :-)
Raymond (INSA, AFPA, CF/R)
Tu ne peux faire cela que sur Word, où les tableaux sont dessinés, et non automatiques comme dans Excel.
C'est bien, la retraite ! Surtout aux Antilles ... :-)
Raymond (INSA, AFPA, CF/R)
Bonjour Raymond,
Je sais et je veux une seule taille, mais je veux étirer ma colonne avec la plus grande valeur, mais je dois commencer à la ligne A18, car au dessus j'ai des entêtes trop volumineuses.
Je fais le code suivant qui marche bien, sauf que je ne trouve pas comment me baser sur ma ligne A18 jusqu'à la dernière ligne utilisée.
Sub largeurdecolonne()
Columns("A:A").EntireColumn.AutoFit
End Sub
Merci
bonne journée
Je sais et je veux une seule taille, mais je veux étirer ma colonne avec la plus grande valeur, mais je dois commencer à la ligne A18, car au dessus j'ai des entêtes trop volumineuses.
Je fais le code suivant qui marche bien, sauf que je ne trouve pas comment me baser sur ma ligne A18 jusqu'à la dernière ligne utilisée.
Sub largeurdecolonne()
Columns("A:A").EntireColumn.AutoFit
End Sub
Merci
bonne journée
Bonsoir Pascalou
Où as tu mis ton code ?
Sub colonne()
Range("A18:A" & Cells(Rows.Count, 1).End(xlUp).Row).Columns.AutoFit
end sub
Il fonctionne bien si tu le mets dans dans le Worksheet de la feuille en question
(Ouvrir l'éditeur VBA Cliquer sur la feuille dans l'arborescence et mettre le code dans la page blanche)
Si au contraire tu mets le code dans un module il faut indiquer la feuille,
tu as plusieurs manières de proceder, soit :
Activesheet.Range("A18:A" & Cells(Rows.Count, 1).End(xlUp).Row).Columns.AutoFit
qui appliquera le code dans la feuille active (tu peux ainsi appeler la macro de n'importe quelle feuille et elle s'appliquera sur celle-ci
soit Sheets("Feuil2").Range("A18:A" & Cells(Rows.Count, 1).End(xlUp).Row).Columns.AutoFit
et la macro ne s'appliquera qu'à la feuille nommée Feuil2
soit enfin Sheets(3).Range("A18:A" & Cells(Rows.Count, 1).End(xlUp).Row).Columns.AutoFit
et la macro s'appliquera à la 3eme feuille du classeur (en partant de la gauche) quelque soit son nom
Cdlmnt
Où as tu mis ton code ?
Sub colonne()
Range("A18:A" & Cells(Rows.Count, 1).End(xlUp).Row).Columns.AutoFit
end sub
Il fonctionne bien si tu le mets dans dans le Worksheet de la feuille en question
(Ouvrir l'éditeur VBA Cliquer sur la feuille dans l'arborescence et mettre le code dans la page blanche)
Si au contraire tu mets le code dans un module il faut indiquer la feuille,
tu as plusieurs manières de proceder, soit :
Activesheet.Range("A18:A" & Cells(Rows.Count, 1).End(xlUp).Row).Columns.AutoFit
qui appliquera le code dans la feuille active (tu peux ainsi appeler la macro de n'importe quelle feuille et elle s'appliquera sur celle-ci
soit Sheets("Feuil2").Range("A18:A" & Cells(Rows.Count, 1).End(xlUp).Row).Columns.AutoFit
et la macro ne s'appliquera qu'à la feuille nommée Feuil2
soit enfin Sheets(3).Range("A18:A" & Cells(Rows.Count, 1).End(xlUp).Row).Columns.AutoFit
et la macro s'appliquera à la 3eme feuille du classeur (en partant de la gauche) quelque soit son nom
Cdlmnt
Bonjour Via55,
meme le vba n'a pas de secret pour toi...
alors je vais encore profiter de tes explications qui sont au top.
j'ai mis ce code , mais j'ai une erreur :
Sub colonnes()
Range("A18:AI18" & Cells(Rows.Count, 1).End(xlUp).Row).Columns.AutoFit
Columns("B:B").ColumnWidth = 13
Columns("C:C").ColumnWidth = 15.5
Columns("F:F").ColumnWidth = 13.5
Columns("K:K").ColumnWidth = 14.5
Columns("L:L").ColumnWidth = 14.5
Columns("M:M").ColumnWidth = 38
Columns("P:P").ColumnWidth = 14.5
Columns("Q:Q").ColumnWidth = 14.5
Columns("U:U").ColumnWidth = 17
Range("A18:B18" & Cells(Rows.Count, 1).End(xlUp).Row).Columns.HorizontalAlignment = xlCenter.Columns.VerticalAlignment = xlBottom
Range("C18:D18" & Cells(Rows.Count, 1).End(xlUp).Row).Columns.HorizontalAlignment = xlLeft.Columns.VerticalAlignment = xlBottom
Range("E18:AI18" & Cells(Rows.Count, 1).End(xlUp).Row).Columns.HorizontalAlignment = xlCenter.Columns.VerticalAlignment = xlBottom
End Sub
et je cherche à macrotiser la police calibri en 30 et les marges.
Bon je vais me coucher, car je n'en peu plus.
a+
Pascal
meme le vba n'a pas de secret pour toi...
alors je vais encore profiter de tes explications qui sont au top.
j'ai mis ce code , mais j'ai une erreur :
Sub colonnes()
Range("A18:AI18" & Cells(Rows.Count, 1).End(xlUp).Row).Columns.AutoFit
Columns("B:B").ColumnWidth = 13
Columns("C:C").ColumnWidth = 15.5
Columns("F:F").ColumnWidth = 13.5
Columns("K:K").ColumnWidth = 14.5
Columns("L:L").ColumnWidth = 14.5
Columns("M:M").ColumnWidth = 38
Columns("P:P").ColumnWidth = 14.5
Columns("Q:Q").ColumnWidth = 14.5
Columns("U:U").ColumnWidth = 17
Range("A18:B18" & Cells(Rows.Count, 1).End(xlUp).Row).Columns.HorizontalAlignment = xlCenter.Columns.VerticalAlignment = xlBottom
Range("C18:D18" & Cells(Rows.Count, 1).End(xlUp).Row).Columns.HorizontalAlignment = xlLeft.Columns.VerticalAlignment = xlBottom
Range("E18:AI18" & Cells(Rows.Count, 1).End(xlUp).Row).Columns.HorizontalAlignment = xlCenter.Columns.VerticalAlignment = xlBottom
End Sub
et je cherche à macrotiser la police calibri en 30 et les marges.
Bon je vais me coucher, car je n'en peu plus.
a+
Pascal
Bonjour,
Essayez avec le code qui suit :
Essayez avec le code qui suit :
Range("A18:A" & Cells(Rows.Count, 1).End(xlUp).Row).Columns.AutoFit
Bonjour,
Bon j'ai eu le temps de voir ton code, ca ne marche pas, je pense que je rentre mal le cde :
Sub colonne()
Range("A18:A" & Cells(Rows.Count, 1).End(xlUp).Row).Columns.AutoFit
end sub
il ne manque pas qq chose , comme style la feuille du classeur ?
activeworksheets
je commence mon apprentissage vba, je pense que ca va etre coton.
a+
Pascal
Bon j'ai eu le temps de voir ton code, ca ne marche pas, je pense que je rentre mal le cde :
Sub colonne()
Range("A18:A" & Cells(Rows.Count, 1).End(xlUp).Row).Columns.AutoFit
end sub
il ne manque pas qq chose , comme style la feuille du classeur ?
activeworksheets
je commence mon apprentissage vba, je pense que ca va etre coton.
a+
Pascal
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour pascalou83400,
Est-ce que le code que je vous ai proposé fonctionne chez-vous... ?
Vous dites ; j'ai mis ce code, mais j'ai une erreur
Pour pouvoir vous aider il faut aussi mettre le message d'erreur et la ligne de code concerné... !
Est-ce que le code que je vous ai proposé fonctionne chez-vous... ?
Vous dites ; j'ai mis ce code, mais j'ai une erreur
Pour pouvoir vous aider il faut aussi mettre le message d'erreur et la ligne de code concerné... !
Bonjour,
Est ce qu'il y des données en dehors de votre Tableau dans la colonne A ?
Si la réponse est non, alors utilsez le code suivant :
Columns("A:A").EntireColumn.AutoFit
Si la réponse est oui :
Après avoir jeté un petit coup d'oeil, je ne pense que ce soit possible. A vrai dire :
- soit on autoajuste une colonne en fonction de toutes les données de celle ci. D'ailleur manuellement on est Obligé de cliquer sur A pour ensuite double cliquer sur le bord pour l'autoajuster.
- soit on impose une taille manuellement et dans ce cas on utlise le code :
Columns("A:A").ColumnWidth = 15 (plus la valeur est grande plus la largeur de la colonne est grande)
Est ce qu'il y des données en dehors de votre Tableau dans la colonne A ?
Si la réponse est non, alors utilsez le code suivant :
Columns("A:A").EntireColumn.AutoFit
Si la réponse est oui :
Après avoir jeté un petit coup d'oeil, je ne pense que ce soit possible. A vrai dire :
- soit on autoajuste une colonne en fonction de toutes les données de celle ci. D'ailleur manuellement on est Obligé de cliquer sur A pour ensuite double cliquer sur le bord pour l'autoajuster.
- soit on impose une taille manuellement et dans ce cas on utlise le code :
Columns("A:A").ColumnWidth = 15 (plus la valeur est grande plus la largeur de la colonne est grande)
Bonsoir,
C'est une telle salade pour suivre la discussion ...... !
Sans compter que l'on ne sait même ce qu'il en est des propositions .... !
Merci de prendre note que je quitte le poste, désolé.
Salutations.
Le Pingou
C'est une telle salade pour suivre la discussion ...... !
Sans compter que l'on ne sait même ce qu'il en est des propositions .... !
Merci de prendre note que je quitte le poste, désolé.
Salutations.
Le Pingou
Bonjour le fil,
une petite proposition après la bronzette, ce code dans les propriétés de la feuille (clic droit sur l'onglet/visualiser le code) paramètrera les colonnes de A à E (1 à 5) sur un simple clic dans la plage A5:E30
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column >= 1 And Target.Column <= 5 And Target.Row > 5 And Target.Row < 30 Then
Columns("A:E").EntireColumn.AutoFit
Else
Columns("A:E").ColumnWidth = 2
End If
End Sub
une petite proposition après la bronzette, ce code dans les propriétés de la feuille (clic droit sur l'onglet/visualiser le code) paramètrera les colonnes de A à E (1 à 5) sur un simple clic dans la plage A5:E30
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column >= 1 And Target.Column <= 5 And Target.Row > 5 And Target.Row < 30 Then
Columns("A:E").EntireColumn.AutoFit
Else
Columns("A:E").ColumnWidth = 2
End If
End Sub
Bonjour à tous,
Bon je pense que j'ai réussi à mettre le code qui correspond à ma mise en page, je vous remercie tous pour voter aide, et désolé de ne pas répondre et remercier en temps réel les personnes qui m'aident ( tout particulièrement Via55, Pingou, et Eriiic ), mais je prends beaucoup de temps pour comprendre et mettre en pratique vos données, qui pour moi représente des nuits sans sommeil, mais je crois que je devient accro à l'informatique.
En retour la seule aide que je peux vous apporter est ma connaissance sur les plantes méditerranéennes,
Mais bon je n'ai pas encore fini mon projet, j'avance très lentement, alors à bientôt.
le code :
Sub largeurdecolonnes()
' met les largeurs de colonnes suivant le besoin de la mise en page avec centrage du texte horiz + verti
Dim nbli As Integer
nbli = Cells(Rows.Count, 1).End(xlUp).Row
Range("A18:AI" & nbli).Columns.AutoFit
Columns("B:B").ColumnWidth = 16
Columns("F:F").ColumnWidth = 14.5
Columns("K:K").ColumnWidth = 16
Columns("L:L").ColumnWidth = 16
Columns("M:M").ColumnWidth = 38
Columns("P:P").ColumnWidth = 15
Columns("Q:Q").ColumnWidth = 15
Columns("R:R").ColumnWidth = 16
Columns("S:S").ColumnWidth = 18.5
Columns("T:T").ColumnWidth = 15
Columns("U:U").ColumnWidth = 18
Columns("V:V").ColumnWidth = 19.5
Columns("W:W").ColumnWidth = 15
Columns("X:X").ColumnWidth = 14.5
Columns("Y:Y").ColumnWidth = 17
Columns("AF:AF").ColumnWidth = 12
Columns("AH:AH").ColumnWidth = 14
Columns("AI:AI").ColumnWidth = 14
With Range("A16:AI" & nbli)
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
End With
' centrage du texte horiz + retrait gauche
With Range("C18:D18" & nbli)
.HorizontalAlignment = xlLeft
.VerticalAlignment = xlCenter
End With
End Sub
Sub engrasA1aAI13()
' mettre en gras la plage de A1:AI13
Range("A1:AI13").Font.Bold = True
End Sub
Sub policeencalibri28()
' met le texte en police Calibri et en 28
Dim nbli As Integer
nbli = Cells(Rows.Count, 1).End(xlUp).Row
Range("A1:AI" & nbli).Select
With Selection.Font
.Name = "Calibri"
.Size = 28
.Underline = xlUnderlineStyleNone
.ThemeColor = xlThemeColorLight1
.TintAndShade = 0
.ThemeFont = xlThemeFontMinor
End With
End Sub
Sub inserimagelogo()
' insere le logo dans l'entete
Dim Gauche, Sommet, Largeur, Hauteur As Single
Gauche = Range("D3").Left
Sommet = Range("D3").Top
Largeur = Range("D3").Width = 40
Hauteur = Range("D3").Height
Feuil1.Shapes.AddPicture "W:\logo\logo palmacea entete.jpg", True, True, Gauche, Sommet, Largeur, Hauteur
End Sub
Bon je pense que j'ai réussi à mettre le code qui correspond à ma mise en page, je vous remercie tous pour voter aide, et désolé de ne pas répondre et remercier en temps réel les personnes qui m'aident ( tout particulièrement Via55, Pingou, et Eriiic ), mais je prends beaucoup de temps pour comprendre et mettre en pratique vos données, qui pour moi représente des nuits sans sommeil, mais je crois que je devient accro à l'informatique.
En retour la seule aide que je peux vous apporter est ma connaissance sur les plantes méditerranéennes,
Mais bon je n'ai pas encore fini mon projet, j'avance très lentement, alors à bientôt.
le code :
Sub largeurdecolonnes()
' met les largeurs de colonnes suivant le besoin de la mise en page avec centrage du texte horiz + verti
Dim nbli As Integer
nbli = Cells(Rows.Count, 1).End(xlUp).Row
Range("A18:AI" & nbli).Columns.AutoFit
Columns("B:B").ColumnWidth = 16
Columns("F:F").ColumnWidth = 14.5
Columns("K:K").ColumnWidth = 16
Columns("L:L").ColumnWidth = 16
Columns("M:M").ColumnWidth = 38
Columns("P:P").ColumnWidth = 15
Columns("Q:Q").ColumnWidth = 15
Columns("R:R").ColumnWidth = 16
Columns("S:S").ColumnWidth = 18.5
Columns("T:T").ColumnWidth = 15
Columns("U:U").ColumnWidth = 18
Columns("V:V").ColumnWidth = 19.5
Columns("W:W").ColumnWidth = 15
Columns("X:X").ColumnWidth = 14.5
Columns("Y:Y").ColumnWidth = 17
Columns("AF:AF").ColumnWidth = 12
Columns("AH:AH").ColumnWidth = 14
Columns("AI:AI").ColumnWidth = 14
With Range("A16:AI" & nbli)
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
End With
' centrage du texte horiz + retrait gauche
With Range("C18:D18" & nbli)
.HorizontalAlignment = xlLeft
.VerticalAlignment = xlCenter
End With
End Sub
Sub engrasA1aAI13()
' mettre en gras la plage de A1:AI13
Range("A1:AI13").Font.Bold = True
End Sub
Sub policeencalibri28()
' met le texte en police Calibri et en 28
Dim nbli As Integer
nbli = Cells(Rows.Count, 1).End(xlUp).Row
Range("A1:AI" & nbli).Select
With Selection.Font
.Name = "Calibri"
.Size = 28
.Underline = xlUnderlineStyleNone
.ThemeColor = xlThemeColorLight1
.TintAndShade = 0
.ThemeFont = xlThemeFontMinor
End With
End Sub
Sub inserimagelogo()
' insere le logo dans l'entete
Dim Gauche, Sommet, Largeur, Hauteur As Single
Gauche = Range("D3").Left
Sommet = Range("D3").Top
Largeur = Range("D3").Width = 40
Hauteur = Range("D3").Height
Feuil1.Shapes.AddPicture "W:\logo\logo palmacea entete.jpg", True, True, Gauche, Sommet, Largeur, Hauteur
End Sub
merci les gars.
Sub colonnes()
Dim nbli As Integer
nbli = Cells(Rows.Count, 1).End(xlUp).Row
Range("A18:AI" & nbli).Columns.AutoFit
Columns("B:B").ColumnWidth = 16
Columns("F:F").ColumnWidth = 14.5
Columns("K:K").ColumnWidth = 16
Columns("L:L").ColumnWidth = 16
Columns("M:M").ColumnWidth = 38
Columns("P:P").ColumnWidth = 15
Columns("Q:Q").ColumnWidth = 15
Columns("R:R").ColumnWidth = 16
Columns("S:S").ColumnWidth = 18.5
Columns("T:T").ColumnWidth = 15
Columns("U:U").ColumnWidth = 18
Columns("V:V").ColumnWidth = 19.5
Columns("W:W").ColumnWidth = 15
Columns("X:X").ColumnWidth = 14.5
Columns("Y:Y").ColumnWidth = 17
Columns("AF:AF").ColumnWidth = 12
Columns("AH:AH").ColumnWidth = 14
Columns("AI:AI").ColumnWidth = 14
With Range("A16:AI" & nbli)
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
End With
With Range("C18:D18" & nbli)
.HorizontalAlignment = xlLeft
.VerticalAlignment = xlCenter
End With
End Sub
Sub engrasA1aAI13()
' mettre en gars la plage de A1:AI13
Range("A1:AI13").Selection.Font.Bold = True
End Sub
Sub policeencalibri28()
Dim nbli As Integer
nbli = Cells(Rows.Count, 1).End(xlUp).Row
Range("A1:AI" & nbli).Select
With Selection.Font
.Name = "Calibri"
.Size = 28
.Underline = xlUnderlineStyleNone
.ThemeColor = xlThemeColorLight1
.TintAndShade = 0
.ThemeFont = xlThemeFontMinor
End With
End Sub
Range("A1:AI13").Font.Bold = True
eric
mon chemin est W:\logo\logo palmacea entete, je mets le code
Sub Macro1()
Dim Photo As Variant
Dim Gauche, Sommet, Largeur, Hauteur As Single
Photo = Application.GetOpenFilename("Images JPEG (*.jpg), *.jpg")
Gauche = Range("C2").Left
Sommet = Range("C2").Top
Largeur = Range("C2").Width
Hauteur = Range("C2").Height
If Photo <> False Then
Feuil1.Shapes.AddPicture Photo, True, True, Gauche, Sommet, Largeur, Hauteur
End If
End Sub