[Résolu] VBA:Syntaxe cells.select ?

  • Initiateur de la discussion Initiateur de la discussion NeMoS
  • 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 !

N

NeMoS

Guest
Bonjour,

A la fin de ma macro je souhaite remettre en forme un tableau et finir par un autofit des colonnes et des lignes.
Je pensais la chose assez simple en faisant sur une feuille préalablement activée
cells.Select
cells.EntireRow.AutoFit
cells.EntireColumn.AutoFit

Mais malheureusement mon code bloque sur cells.select et j'avoue que moi aussi (je bloque).

J'obtiens la fameuse Run-time error 91.....

Ci-joint mon fichier si vous voulez jetez un coup d'oeil, c'est sommes toutes assez simple.....

En vous remerciant

Gwen
 

Pièces jointes

Dernière modification par un modérateur:
Re : VBA:Syntaxe cells.select ?

Bonjour MeMos, bonjour le forum,

Pourquoi vouloir sélectionner à tout prix ? Ça ne fait que ralentir le code et un With... End With fait très bien l'affaire. De plus, si tu donnes une largeur à une colonne et ensuite tu l'ajustes, l'ajustement remplace la largeur indiquée...
Essaie comme ça :
Code:
Private Sub CommandButton1_Click()
Dim duree As Integer
Dim i As Integer

'Dim nbfeuille As Integer
i = 1
duree = Worksheets("Jour1").Range("K10").Value
If duree > 1 Then
    For i = 1 To duree - 1
        Sheets.Add
        ActiveSheet.Name = "Jour" & i + 1
        Sheets("Jour1").Range("B26:N90").Copy Sheets("Jour" & i + 1).Range("B2")
        'Sheets("Jour1").Range("B26:N90").Copy
        'Sheets("Jour" & i + 1).Range("B2").Paste
        With Sheets("Jour" & i + 1)
            .Range("B4").Value = i + 1
            .Move After:=Sheets("Jour" & i)
            .cells.EntireRow.AutoFit
            .cells.EntireColumn.AutoFit
            .Columns("K:K").ColumnWidth = 32
            .Columns("M:M").ColumnWidth = 25
            .Columns("L:L").ColumnWidth = 25
            .Columns("N:N").ColumnWidth = 27
        End With
    Next
End If
End Sub
 
Re : VBA:Syntaxe cells.select ?

Bon ben rien à dire...c'est parfait...🙂

je ne vois toujours pas pourquoi le cells.select bloquait mais ce n'est pas très grave...

J'avoue que je n'ai pas le réflexe With mais je vais corriger ça à l'avenir !!!

Merci encore
 
Re : [Résolu] VBA:Syntaxe cells.select ?

Bonjour MeMos, bonjour le forum,

À vrai dire, moi non plus j'ai pas compris pourquoi ça plantait, mais tu penses bien que je me suis garder de le dire pour faire le malin...

[Édition]
Je viens de comprendre... Tu lances le code à partir d'un bouton qui se trouve dans un autre onglet que là où tu veux sélectionner. Même en activant cet onglet, tu dois spécifier dans ce cas :

Code:
Sheets("Jour" & i + 1).Cells.Select
Sheets("Jour" & i + 1).Cells.EntireRow.AutoFit
Sheets("Jour" & i + 1).Cells.EntireColumn.AutoFit

C'est pour cela que le With... End With est pratique car il évite ce bug.
 
Dernière édition:
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.
Retour