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

4 réponses

1 2
Avatar
isabelle
bonjour Christophe,

1- feuille est protégée (mais le formatage des cellules est autorisé)?



si le "Format de colonne" est authorisé il n'y a pas de probleme, attention ce n'est pas la même que le "Format de cellule"

2- L'entrée des données se fait à l'aide d'un menu déroulant dans la
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.?



oui, dans ce cas il faut utiliser l'événement Calculate

Private Sub Worksheet_Calculate()
Range("C:IB").EntireColumn.AutoFit
End Sub

isabelle

Le 2010-08-08 15:57, Christophe a écrit :
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édent
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 la
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
Avatar
isabelle
ps/

tu peut aussi déprotéger la feuille pour exécuter une commande,

Private Sub Worksheet_Calculate()
ActiveSheet.Unprotect "jiji" 'mot de passe à adapter
Range("C:IB").EntireColumn.AutoFit
ActiveSheet.Protect "jiji" 'mot de passe à adapter
End Sub

isabelle

Le 2010-08-08 16:14, isabelle a écrit :
bonjour Christophe,

> 1- feuille est protégée (mais le formatage des cellules est autorisé)?

si le "Format de colonne" est authorisé il n'y a pas de probleme,
attention ce n'est pas la même que le "Format de cellule"

> 2- L'entrée des données se fait à l'aide d'un menu déroulant dans la
> 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.?

oui, dans ce cas il faut utiliser l'événement Calculate

Private Sub Worksheet_Calculate()
Range("C:IB").EntireColumn.AutoFit
End Sub

isabelle

Le 2010-08-08 15:57, Christophe a écrit :
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édent
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 la
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
Avatar
Christophe
Isabelle:

Génial. La Private Sub Worksheet_Calculate() fonctionne parfaitement.

Merci.

Christophe
Avatar
Fredo P.
Il a amha xl97

"isabelle" a écrit dans le message de news:
i3me83$hd8$
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
1 2