IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Pb de bouton de commande [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de midge
    Homme Profil pro
    Conseiller
    Inscrit en
    Juillet 2010
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Conseiller
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2010
    Messages : 72
    Par défaut Pb de bouton de commande
    Bonjour,
    Dans un classeur j'ai plusieurs onglets : le premier n'est complété que de boutons de commandes, les autres de données. Sauf que les boutons ne fonctionnent pas. En revanche, lorsque je vais sur un onglet avec Alt+F8 Executer la macro tourne normalement, elles sont enregistrées dans un module standard, les boutons dans un autre module standard.
    Le débogueur s'arrête sur la ligne rouge avec le message "Erreur d'exécution 1004 Référence de tri non valide Vérifiez qu'elle se trouve bien parmi les données à trier et que la zone Trier n'est pas identique ou vide"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    Sub Affichage01()
    Application.ScreenUpdating = False
    
    With Sheets("01")
    .Rows(1).RowHeight = 25.5
    .Rows("2:300").RowHeight = 12.75
    .UsedRange.Sort Key1:=[D2], Order1:=xlAscending, Header:=xlGuess
    .Columns("A:A").ColumnWidth = 9.71
    .Columns("B:B").ColumnWidth = 20.43
    .Columns("C:C").ColumnWidth = 16.71
    .Columns("D:D").ColumnWidth = 6
    .Columns("E:E").ColumnWidth = 5.43
    .Columns("F:F").ColumnWidth = 27.14
    .Columns("G:G").ColumnWidth = 9.43
    .Columns("H:H").ColumnWidth = 6.43
    .Columns("I:I").ColumnWidth = 4.43
    .Columns("J:J").ColumnWidth = 12
    End With
    With Sheets("01").Range("J2").Select
    ActiveWindow.FreezePanes = True
    'ActiveWorkbook.Saved = True
    End With
    With Sheets("01")
    Selection.AutoFilter
    End With
    
    Application.ScreenUpdating = True
    End Sub
    Je suppose que je mésuse la méthodologie "bouton" mais je tourne en rond, une aide est la bienvenue merci

  2. #2
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut
    Bonjour,

    corriger le Header de la ligne n°7 puis la déplacer après la ligne n°4 pour voir …

  3. #3
    Membre Expert
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2013
    Messages
    885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 885
    Par défaut pb de bouton de commande
    Bonjour,

    Ma version 2013 n’apprécie pas "01" lorsque j'exécute le code pas à pas mais fonctionne bien avec "feuil1".

    Comme toi il ne fonctionne pas à partir du bouton.
    Par contre, si l'on ajoute avant la ligne "with......" le sheets(feuil1).select tant décrié par les professionnels, ça marche. Je suis bien incapable de te dire pourquoi.

    Peut-être serait-il préférable de remplacer "usedrange" par "currrentregion".
    De plus, tu peux commencer le tri à D1 avec header xlguess.

    Cordialement,

  4. #4
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Tout à fait normal, rien à voir avec la version d'Excel car si la feuille se nomme Feuil1, elle ne peut donc pas se nommer 01.

    Ne pas confondre avec l'Index de la feuille ne devant pas être entre guillemet car c'est une valeur numérique,
    le B-A-BA de la programmation …

    Si Option Explicit n'est pas utilisé, préférer alors le CodeName de la feuille : With Feuil1

  5. #5
    Membre Expert
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Par défaut
    midge

    J'apporte quelques corrections à ton code.
    Il faut être très précis.
    Ce n'est pas [D2] mais .[D2] qu'il faut ici pour bien préciser de quel [D2] il s'agit : celui de la Feuil1, ou Feuil2, etc.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    Sub Affichage01()
    Application.ScreenUpdating = False
     
    With Sheets("Feuil1")
    .Rows(1).RowHeight = 25.5
    .Rows("2:300").RowHeight = 12.75
    '.UsedRange.Sort Key1:=[D2], Order1:=xlAscending, Header:=xlGuess
     
    .Cells.Sort Key1:=.[D2], Order1:=xlAscending, Header:=xlGuess
     
    .Columns("A:A").ColumnWidth = 9.71
    .Columns("B:B").ColumnWidth = 20.43
    .Columns("C:C").ColumnWidth = 16.71
    .Columns("D:D").ColumnWidth = 6
    .Columns("E:E").ColumnWidth = 5.43
    .Columns("F:F").ColumnWidth = 27.14
    .Columns("G:G").ColumnWidth = 9.43
    .Columns("H:H").ColumnWidth = 6.43
    .Columns("I:I").ColumnWidth = 4.43
    .Columns("J:J").ColumnWidth = 12
    End With
     
    Sheets("Feuil1").Activate
     
    ActiveWindow.FreezePanes = False
    Sheets("Feuil1").Range("J2").Activate
     
    ActiveWindow.FreezePanes = True
     
    With Sheets("Feuil1")
    'Selection.AutoFilter
    .Cells.AutoFilter
    End With
     
    Application.ScreenUpdating = True
    End Sub

  6. #6
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    M'a échappé, bien vu !

  7. #7
    Membre confirmé Avatar de midge
    Homme Profil pro
    Conseiller
    Inscrit en
    Juillet 2010
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Conseiller
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2010
    Messages : 72
    Par défaut
    Bonjour
    Merci à tous pour vos remarques et particulièrement à Docmarti dont les corrections ont fait merveille : il manquait bien le ". " et les lignes 23 à 28 ont avantageusement remplacées les miennes !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. PB Bouton de commande
    Par tigerfish dans le forum Access
    Réponses: 15
    Dernier message: 27/03/2006, 11h27
  2. [VBA-W] Créer un bouton de commande
    Par maketossss dans le forum VBA Word
    Réponses: 15
    Dernier message: 07/11/2005, 17h07
  3. Bouton de commande - Aller à un onglet défini
    Par JF.Stachera dans le forum Access
    Réponses: 2
    Dernier message: 16/09/2005, 17h58
  4. [Collaboration/Interaction] Peut-on schématiser une interaction entre un bouton de commande et un autre objet ?
    Par manel007 dans le forum Autres Diagrammes
    Réponses: 5
    Dernier message: 21/09/2004, 01h01
  5. Ajout de bouton de commandes dans la barre de menus
    Par vanessaf22 dans le forum IHM
    Réponses: 9
    Dernier message: 21/07/2003, 11h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo