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

Autofit Colonnes feuille Automatiquement

14 réponses
Avatar
Christophe
Re-Bonjour:

Excel 2007

Je souhaiterais que les colonnes d'une feuille sur un range (C:IB")
s'ajuste automatiquement en fonction de leur contenu idealement chaque
fois qu'une nouvelle donn=E9e est entr=E9e dans une cellule.

J'ai pens=E9 utilis=E9 la Private Sub suivante mais a priori cela ne
fonctionne pas y compris lorsque je quitte la feuille et y retourne;

Private Sub AutofitCountryAppointments()

Columns("C:IB").Select
Columns("C:IB").EntireColumn.Autofit

End Sub

Merci.

Christophe

10 réponses

1 2
Avatar
Fredo P.
Bonjour Christophe

À placer dans le code de la feuille utilisée

Private Sub Worksheet_Change(ByVal Target As Range)
Columns("C:IB").EntireColumn.AutoFit
End Sub

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

Re-Bonjour:

Excel 2007

Je souhaiterais que les colonnes d'une feuille sur un range (C:IB")
s'ajuste automatiquement en fonction de leur contenu idealement chaque
fois qu'une nouvelle donnée est entrée dans une cellule.

J'ai pensé utilisé la Private Sub suivante mais a priori cela ne
fonctionne pas y compris lorsque je quitte la feuille et y retourne;

Private Sub AutofitCountryAppointments()

Columns("C:IB").Select
Columns("C:IB").EntireColumn.Autofit

End Sub

Merci.

Christophe
Avatar
Christophe
Bonjour:

Merci Fredo. Malheureusement,il ne se passe rien. les colonnes ne
s'ajustent pas en fonction du contenu.

Christophe
Avatar
isabelle
bonjour Christophe,

Range("C:IB").EntireColumn.AutoFit

isabelle

Le 2010-08-08 07:31, Christophe a écrit :
Bonjour:

Merci Fredo. Malheureusement,il ne se passe rien. les colonnes ne
s'ajustent pas en fonction du contenu.

Christophe
Avatar
Fredo P.
Bizarre, chez moi pas de pb, peut être la version Xl? !
Chère Isabelle, que je salue, a sans aucun doute, vues ses compétences, le
dernier bon mot.

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

Bonjour:

Merci Fredo. Malheureusement,il ne se passe rien. les colonnes ne
s'ajustent pas en fonction du contenu.

Christophe



Private Sub Worksheet_Change(ByVal Target As Range)
Range("C:IB").EntireColumn.AutoFit
End Sub
Avatar
isabelle
bonjour Fredo,

normalement les deux devraient fonctionner correctement,
je soupçonne une feuille protégée ou bien le focus sur un objet autre que range...
peut être aussi un "On Error Resume Next" dans la procedure, qui cacherait l'erreur.
Christophe pourra nous en dire plus,

@--
isabelle

Le 2010-08-08 09:55, Fredo P. a écrit :
Bizarre, chez moi pas de pb, peut être la version Xl? !
Chère Isabelle, que je salue, a sans aucun doute, vues ses compétences,
le dernier bon mot.

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

Bonjour:

Merci Fredo. Malheureusement,il ne se passe rien. les colonnes ne
s'ajustent pas en fonction du contenu.

Christophe



Private Sub Worksheet_Change(ByVal Target As Range)
Range("C:IB").EntireColumn.AutoFit
End Sub
Avatar
Christophe
Isabelle:

Merci mais l'ajustement des colonnes ne se fait pas quand je tape et
valide des donnés dans une cellule.

Christophe
Avatar
isabelle
bonjour Christophe,

les événements ont peut être été désactivé suite à un arrêt au milieu d'une procédure,
exécute cette macro 1 fois,

Sub Macro1()
Application.EnableEvents = True
End Sub

et refait un essai en modifient une donnée de la feuille en question.

isabelle


Le 2010-08-08 11:01, Christophe a écrit :
Isabelle:

Merci mais l'ajustement des colonnes ne se fait pas quand je tape et
valide des donnés dans une cellule.

Christophe

Avatar
Christophe
Isabelle,

Merci. J'ai executé la macro

Sub Macro1()
Application.EnableEvents = True
End Sub


et j'ai
'Autofit sheet automatically
Private Sub Worksheet_Autofit(ByVal Target As Range)
Range("C:IB").EntireColumn.Autofit
End Sub

mais les colonnes ne s'ajustent toujours pas :-(

Christophe
Avatar
isabelle
bonjour Christophe,

si tu veut que l'execution de la macro se fasse chaque fois qu'une nouvelle donnée est entrée dans une cellule,
il faut utiliser l'événement change, comme indiquer par Fredo,

Private Sub Worksheet_Change(ByVal Target As Range)
Columns("C:IB").EntireColumn.AutoFit
End Sub

si tu veut qu'elle s'execute uniquement lorsque une donnée est changée dans la plage Columns("C:IB")
tu doit vérifier si Target fait partie de cette plage,

Private Sub Worksheet_Change(ByVal Target As Range)
Set isect = Application.Intersect(Target, Range("C:IB"))
If Not isect Is Nothing Then Range("C:IB").EntireColumn.AutoFit
End Sub

isabelle


Le 2010-08-08 12:39, Christophe a écrit :
Isabelle,

Merci. J'ai executé la macro

Sub Macro1()
Application.EnableEvents = True
End Sub


et j'ai
'Autofit sheet automatically
Private Sub Worksheet_Autofit(ByVal Target As Range)
Range("C:IB").EntireColumn.Autofit
End Sub

mais les colonnes ne s'ajustent toujours pas :-(

Christophe

Avatar
Christophe
Isabelle,

Merci. Je ne suis pas certain de comprendre la difference
d'application des 2 Private Sub telles que décrites dans ton précéden t
post.
J'ai essayé les deux dans une nouvelle feuille et la seconde i.e;

Private Sub Worksheet_Change(ByVal Target As Range)
Set isect = Application.Intersect(Target, Range("C:IB"))
If Not isect Is Nothing Then Range("C:IB").EntireColumn.AutoFit
End Sub

fonctionne parfaitement.

Maintenant lorsque j'essaie de l'utiliser dans la feuille de mon
fichier de travail rien ne se passe.

Est-ce que l'un des facteurs suivants est en mesure d'affecter le
déroulement de cette Private Sub

1- feuille est protégée (mais le formatage des cellules est autorisé) ?
2- L'entrée des données se fait à l'aide d'un menu déroulant dans l a
colonne C et génère automatiquement le contenu correspondante dans la
colonne D via une formule. Même chose pou colonne D et E, etc.?

Merci.

Christophe
1 2