XL 2016 Adapter code VBA a un tableau et non colonne entière

  • Initiateur de la discussion Initiateur de la discussion Yücel
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Yücel

XLDnaute Junior
Bonjour,

Je souhaiterai adapter le code ci-dessous uniquement au tableau nommé "Tableau1" et non à toute la colonne "F"

VB:
Private Sub Worksheet_SelectionChange(ByVal target As Range)

    Application.ScreenUpdating = False
    Columns("F").ColumnWidth = 11.67
If Not Intersect(Range("F10:F1000"), target) Is Nothing And target.Count = 1 Then
    Columns(target.Column).ColumnWidth = 50
End If

End Sub

Merci pour votre aide.
 
Solution
Yucel, le forum

Ceci devrait correspondre à votre demande :
VB:
Private Sub Worksheet_SelectionChange(ByVal target As Range)
Dim Derlig As String

Application.ScreenUpdating = False
Columns("F").ColumnWidth = 11.67

Derlig = Range("F" & Rows.Count).End(xlUp).Row

If Not Intersect(Range("F10:F" & Derlig), target) Is Nothing And target.Count = 1 Then
    Columns(target.Column).ColumnWidth = 50
End If

End Sub
@Phil69970
Bonjour Phil69970,

Étonnant pourtant lorsque je clique sur le cellule F9 rien ne se passe car la macro ne se lance qu'à partir de la F10. Je voulais seulement que lorsque je clique sur la colonne F du tableau uniquement, que la colonne F s'élargisse. Car là tout fonctionne bien sauf que lorsque je clique sur la cellule F50 alors que mon tableau se termine à la cellule F30 et bien la colonne s'élargie.

il doit forcement y avoir une solution pour que la macro se lance uniquement pour le tableau.

Merci à vous.
 
Bonsoir

Peut-on alors adapter la macro non pas pour : Range("F10:F1000") mais de F10 jusqu'à la dernière cellule non vide de la colonne F ??

VB:
Private Sub Worksheet_SelectionChange(ByVal target As Range)

    Application.ScreenUpdating = False
    Columns("F").ColumnWidth = 11.67
If Not Intersect(Range("F10:F1000"), target) Is Nothing And target.Count = 1 Then
    Columns(target.Column).ColumnWidth = 50
End If

End Sub


Merci pour votre précieuse aide.
 
Yucel, le forum

Ceci devrait correspondre à votre demande :
VB:
Private Sub Worksheet_SelectionChange(ByVal target As Range)
Dim Derlig As String

Application.ScreenUpdating = False
Columns("F").ColumnWidth = 11.67

Derlig = Range("F" & Rows.Count).End(xlUp).Row

If Not Intersect(Range("F10:F" & Derlig), target) Is Nothing And target.Count = 1 Then
    Columns(target.Column).ColumnWidth = 50
End If

End Sub
@Phil69970
 
Bonsoir le fil,

Si j'ai bien compris le but recherché
Une autre façon de faire
VB:
Private Sub Worksheet_SelectionChange(ByVal T As Range)
If T.Column = 6 Then
If T.Count > 1 Then Exit Sub
Columns(T.Column).ColumnWidth = IIf(T.Row >= 10, 50, 11.67)
End If
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 Probléme VBA
Réponses
8
Affichages
330
Réponses
4
Affichages
234
Réponses
3
Affichages
201
Réponses
1
Affichages
350
Réponses
32
Affichages
1 K
Retour