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 :

Aide pour erreur de code


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2010
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Mars 2010
    Messages : 59
    Par défaut Aide pour erreur de code
    Re bonjour,
    Faute d'avoir une réponse à mo précédent post j'en refait un autre ici mais concernant une autre erreur de code
    Je veux mettre deux boutons, précédent et suivant pour mon tableau (en Pj)

    Seulement j'ai pourtant tout essayé je ne trouve pas mon erreur
    Qui saurait me donner les informations nécessaire pour la comprendre?
    Merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub CmdSuivant_Click()                    'Bouton Suivant
    Dl = Sheets("Reines").Range("A456541").End(xlUp).Row
    currentRow = CurentRow + 1                     'Dl = dernière ligne
     
        If currentRow = currentRow + 1 Then
            currentRow = Dl                                 'Si la dernière ligne n'a plus de données
            MsgBox "Vous êtes arrivé au bout de la liste"
        End If
            TextBox1.Text = Cells(currentRow, 1).Value
            TextBox2.Text = Cells(currentRow, 2).Value
     
    End Sub


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub CndPrécédent_Click()                  'Bouton Précédent
        currentRow = currentRow - 1
        If currentRow > 1 Then
            TextBox1.Text = Cells(currentRow, 1).Value
            TextBox2.Text = Cells(currentRow, 2).Value
        ElseIf currentRow = 1 Then
        currentRow = currentRow + 1
        MsgBox "Vous êtes au premier enregistrement"
        End If
     
    End Sub
    Images attachées Images attachées  

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par papy_polo67 Voir le message
    mon tableau (en Pj)
    Beaucoup de participants n'ouvrent pas les fichiers joints. https://www.developpez.net/forums/d8...s-discussions/

    Qui saurait me donner les informations nécessaire pour la comprendre?
    Peut-être toi-même pourrais-tu donner les informations nécessaires pour comprendre ton problème.

    Comment se manifeste ce dysfonctionnement ?
    Est-ce une erreur de syntaxe dans l'éditeur ? A quelle ligne de code ? Quel est le message de l'éditeur ?
    Est-ce un bug d'exécution ? Quel est le message d'erreur ? Quelle est la ligne désignée par le débugage ?
    Est un résultat non conforme ? Quel résultat était attendu et quel résultat est obtenu ?

    currentRow = CurentRow + 1 'Dl = dernière ligne
    Est-ce normal d'avoir deux variables aux noms proches mais différents ?
    Si c'est une erreur, je te conseille fortement de mettre un Option Explicit qui oblige la déclaration de variables et qui met rapidement en lumière ce type d'erreur.

    Visiblement cette variable sert dans différents Sub. L'as-tu déclarée au niveau supérieur (avant les Sub) ?

  3. #3
    Membre confirmé
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2010
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Mars 2010
    Messages : 59
    Par défaut
    Lorsque je clique sur les boutons précédent ou suivant, rien ne se passe...

    Concernant la pièce jointe, elle est affichée, c'est l'entête du tableau pour avoir un aperçu de ce qui est demandé.

    Théoriquement CurrentRox=CurrentRow +1 ou -1 signifierait qu'on se place dans la dernière ou première ligne du tableau pour avancer ou reculer.

    Ce code que j'essais d'adapter est conçu pour des lignes (Row), alors que mon tableau est en colonnes

    Je suis débutant et comme chacun je peux comprendre des explications dans leurs intégralités, mais pas avec des bribes.
    Soyez svp indulgent

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 186
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Je vois déjà deux anomalies dans les procédures publées
    1. en ligne 5 de la procédure CmdSuivant_Click, le test me semble farfelu If currentRow = currentRow + 1 Then. Il est évident que CurrentRow ne pourra jamais être égal à CurrentRow + 1
    2. en ligne 7 de la procédure CndPrécédent_Click() où l'on voit currentRow = currentRow + 1 alors que d'après moi, cela devrait être une soustraction.

    Je me suis arrêté là mais il y a sans doute d'autres erreurs de ce genre
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  5. #5
    Membre confirmé
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2010
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Mars 2010
    Messages : 59
    Par défaut
    Citation Envoyé par Philippe Tulliez Voir le message
    Bonjour,
    Je me suis arrêté là mais il y a sans doute d'autres erreurs de ce genre
    Merci pour votre aide

  6. #6
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 186
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    J'ai écris en vitesse un cas simple à adapter à ton cas

    Une liste de données se trouvant dans la feuille nommée Data (CodeName = shtData) du classeur où se trouve le code VBA (ThisWorkbook).

    Un UserForm avec quatre contrôles
    1. blName
    2. txName
    3. cmdPrevious
    4. cmdNext


    Illustration ci-dessous

    Nom : 200319 dvp Next Previous Record.png
Affichages : 179
Taille : 25,5 Ko

    Code des procédures du UserForm

    En tête de module
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Option Explicit
    Dim rng As Range          ' Plage complète (Titre + données)
    Dim rngData As Range      ' Plage des données
    Dim CurrentRecord As Long ' Enregistrement courant
    Dim minRecord As Long     ' Premier enregistrement
    Dim maxRecord As Long     ' Dernier enregistrement
    Procédure événementielle UserForm_Activate
    La ligne 2 pourrait être remplacée par Set rng = ThisWorkbook.Worksheets("Data").Range("A1").CurrentRegion
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub UserForm_Activate()
      Set rng = shtData.Range("A1").CurrentRegion  ' Equivalent à Ctrl & *
      With rng
        Set rngData = .Offset(1).Resize(.Rows.Count - 1)
      End With
      ' Définition des limites inférieures et supérieures des données
      minRecord = 1: maxRecord = rngData.Rows.Count
      ' Commence l'eregistrement à 1
      CurrentRecord = minRecord
     
      ReadRecord CurrentRecord ' Lecture de l'enregistrement courant
    End Sub
    Procédure événementielle cmdNext_Click
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub cmdNext_Click()
      CurrentRecord = CurrentRecord + 1
      If CurrentRecord > maxRecord Then CurrentRecord = maxRecord
      ReadRecord CurrentRecord ' Lecture
    End Sub
    Procédure événementielle cmdPrevious_Click
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub cmdPrevious_Click()
      CurrentRecord = CurrentRecord - 1
      If CurrentRecord < minRecord Then CurrentRecord = minRecord
      ReadRecord CurrentRecord ' Lecture
    End Sub
    Procédure ReaRecord
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub ReadRecord(RecordNumber As Long)
      Me.txtName.Value = rngData.Cells(RecordNumber, 2).Value
    End Sub
    [EDIT 2] (20 mars 2020)
    Ajouté le classeur de démonstration
    Fichiers attachés Fichiers attachés
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  7. #7
    Membre confirmé
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2010
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Mars 2010
    Messages : 59
    Par défaut
    Merci Philippe,
    Vous utilisez des expressions que je n'ai jamais vu nulle part
    y a t'il un glossaire ou mieux un "dispositif" qui expliquerait tout les termes susceptibles d'être utilisés en codage?
    Je vais digérer les 5 procédures pour les comprendre et pouvoir les réutiliser le cas échéant
    Merci pour votre travail
    Papy Polo

  8. #8
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 186
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Vous utilisez des expressions que je n'ai jamais vu nulle part
    Quelles expressions ne sont pas comprises ?
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  9. #9
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 478
    Par défaut
    Bonjour,
    Citation Envoyé par papy_polo67 Voir le message
    y a t'il un glossaire ou mieux un "dispositif" qui expliquerait tout les termes susceptibles d'être utilisés en codage?
    Regardes ici : quelques heures de lecture en perspective, mais tout y est (ou presque) :
    Référence du langage Visual Basic | Microsoft Docs

  10. #10
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Si tu veux continuer à faire du codage, tu aurais intérêt à mettre dans tes favoris les liens qui te sont donnés ici, en particulier ceux concernant l'aide Microsoft.

    Citation Envoyé par papy_polo67 Voir le message
    Vous utilisez des expressions que je n'ai jamais vu nulle part
    y a t'il un glossaire ou mieux un "dispositif" qui expliquerait tout les termes susceptibles d'être utilisés en codage?
    Pour le VBA Excel : https://bidou.developpez.com/article/VBA/

    Pour les UserForm : https://silkyroad.developpez.com/VBA/UserForm/
    ou, plus officiellement : https://docs.microsoft.com/fr-fr/off...icrosoft-forms

    Regardes ici : quelques heures de lecture en perspective, mais tout y est (ou presque) :
    Il faudrait y ajouter les objets spécifiques à Excel : https://docs.microsoft.com/fr-fr/off...ectedfrom=MSDN
    A regarder tout particulièrement les objets Range, Worksheet, Workbook et Application et leurs membres.

  11. #11
    Membre confirmé
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2010
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Mars 2010
    Messages : 59
    Par défaut
    Bonsoir Philippe,
    A ne pas regarder dans les pièce jointe, on fini par ne pas comprendre ce que la question implicite.
    Ci joint le formulaire Useform qui fonctionne avec les macros définies
    Seul me reste a intégrer les commandes pour suivant et précédent (sens de ma question)
    Nom : Useform.jpg
Affichages : 487
Taille : 28,5 Ko
    Si j'ai bien compris
    - Il faut créer un nouvel onglet Data
    - Mette un # en A1, recopier la liste des Reines de B2 à ......
    Mais pourquoi recopier la liste des reines puisqu'elle existe déjà?
    L'affichage des nom en TxtName se fait déjà dans la case nom de l'Useform
    Pour CmdPrevious et CmdNext j'ai compris qu'il faut coller la procédure dans les boutons
    Quid de la dernière? à quelle commande est elle affectée?
    Merci

  12. #12
    Membre confirmé
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2010
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Mars 2010
    Messages : 59
    Par défaut
    Bonsoir Menhir e Patrick
    J'ai bien pris en compte vos liens que j'ai commencé à lire avec intérêts.
    Mais rien de mieux que la pratique. A mon âge cela n'est plus aussi facile de tout comprendre
    Merci bien

  13. #13
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 186
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    La réponse détaillée avec exemple n'avait pour but que de te faire comprendre comment faire en sorte de se déplacer de la première à la dernière ligne d'une liste de données et ayant besoin d'une liste exemple, j'ai mis MA liste dabs une feuille que j'ai nommée [Data]
    alors
    Si j'ai bien compris
    - Il faut créer un nouvel onglet Data
    évidemment que non
    Pour CmdPrevious et CmdNext j'ai compris qu'il faut coller la procédure dans les boutons
    Quid de la dernière? à quelle commande est elle affectée?
    Chez moi, j'utilise CurrentRecord et toi currentRow, le bouton CommandButton qui sert à aller à l'enregistrement précédent je l'ai nommé cmdPrevious et toi CndPrécédent et pour l'enregistrement suivant, chez moi cmdNext et chez toi CmdSuivant (Même si je suis convaincu qu'il s'agisse d'une coquille, Il faut tout de même essayer d'avoir une cohérence dans le préfixe que l'on donne aux objets, cela aide pour la maintenance et la relecture d'un programme) donc il s'agit d'adapter

    Je l'ai bien expliqué dans ma réponse ce n'est qu'un EXEMPLE à ADAPTER

    Je viens d'ajouter au Fil #6 le classeur de démonstration
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  14. #14
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 478
    Par défaut
    Bonjour,
    Citation Envoyé par papy_polo67 Voir le message
    Bonsoir Philippe,
    A ne pas regarder dans les pièce jointe, on fini par ne pas comprendre ce que la question implicite.
    Je pense que Philippe a très bien compris ce que tu voulais.
    Il t'a donné un exemple à créer dans un fichier vierge pour que tu comprennes le cheminement du raisonnement, et qu'ensuite tu l'adaptes à ton besoin.
    C'est un code qui est dans la continuité de tes méthodes de codage.

    Je n'ai pas répondu car tes méthodes sont contraires à certains critères que je m'impose (entre autres ne pas employer des variables publiques lorsque qu'on peut s'en passer).

    EDIT : @Philippe : on s'est croisé

  15. #15
    Membre confirmé
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2010
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Mars 2010
    Messages : 59
    Par défaut
    Merci pour vos explication, en effet j'étais un peu perdu.
    Les code de cet UseForm ne viennent bien entendu pas de moi mais je les ai adapté par de multiples questions ici et la et bien sur ici quand j'étais vraiment coincé
    L'explication de Philippe est très bien une fois qu'expliqué que c'était un exemple..
    Je sais je comprends pas très vite
    Mais en tout cas merci
    Vous êtes des craks et il faut le dire
    Je ne comprendrais peut être jamais ce que veulent dire toutes ses lignes de code mais je vais les garder bien précieusement
    PapyPolo

  16. #16
    Futur Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2013
    Messages : 5
    Par défaut Mise en oeuvre de la solution proposée par Philippe
    Bonjour le forum,
    Merci aux contributeurs, j'ai essayé de reproduire la solution proposée par Philippe avant l'ajout de son classeur et je suis tombé sur 2 écueils :
    * les déclarations de variables :
    Code des procédures du UserForm

    En tête de module
    J'avais cru comprendre qu'il fallait les déclarer dans la partie Modules, pour moi dans module1, alors qu'il faut les positionner dans le code associé au userForm.

    * j'avais une erreur [variable non déclarée] à l'exécution sur la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set rng = shtData.Range("A1").CurrentRegion  ' Equivalent à Ctrl & *
    de la Procédure événementielle UserForm_Activate
    Du coup j'avais corrigé ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim shtData As Worksheet
    Set shtData = Sheets("Feuil1")
    A la publication du classeur, j'ai constaté, post #6 modifié, que Philippe avait modifié son code en :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      Set rng = ThisWorkbook.Worksheets("Data").Range("A1").CurrentRegion
    Depuis cela fonctionne bien.
    Merci encore Philippe pour cet exemple très pédagogique.
    Christian

  17. #17
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 478
    Par défaut
    Bonjour ChrisXuard,

    Citation Envoyé par ChrisXuard Voir le message
    ... je suis tombé sur 2 écueils :
    * les déclarations de variables :
    J'avais cru comprendre qu'il fallait les déclarer dans la partie Modules, pour moi dans module1, alors qu'il faut les positionner dans le code associé au userForm.

    * j'avais une erreur [variable non déclarée] à l'exécution sur la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set rng = shtData.Range("A1").CurrentRegion  ' Equivalent à Ctrl & *
    Philippe n'est pas connecté, donc quelques précisions :

    1) il existe plusieurs sortes de modules, la partie Modules est celle des modules Standards.

    Par exemple :
    Nom : Modules.jpg
Affichages : 498
Taille : 61,4 Ko

    Code des procédures du UserForm / En tête de module
    Signifie en tête du module de formulaire

    2) Erreur sur cette ligne de code : ici shtData est le nom de code de la feuille (CodeName) qu'il faut redéfinir.

    La solution que tu as adopté (définir une variable Worksheet) est une alternative qui permet de faire fonctionner le code,
    Mais pour définir une feuille de calcul, il est plus correct d'écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim shtData As Worksheet
    Set shtData = Worksheets("Feuil1")
    C'est un item de la collection Worksheets, car la collection Sheets est plus vaste, elle ne contient pas que des feuilles de calculs.

  18. #18
    Futur Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2013
    Messages : 5
    Par défaut
    Bonjour Patrice,
    Merci pour tes explications très claires, dans ma modification du code j'avais commencé par utilisé la collection Worksheets et ça bugait mais c'était juste parce que j'avais oublié le "s" à la fin du mot, et ça change tout.
    @+
    Christian

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

Discussions similaires

  1. [XL-2003] Aide pour erreur dans un code Vba Excel
    Par NEC14 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 25/05/2009, 08h48
  2. [VB.NET] besoin d'aide pour déchiffrer un code
    Par pcdj dans le forum Windows Forms
    Réponses: 10
    Dernier message: 27/06/2006, 12h32
  3. Aide pour comprendre un code
    Par Spacy_green dans le forum Assembleur
    Réponses: 2
    Dernier message: 13/02/2006, 14h22
  4. Aide pour comprendre le code
    Par jfreuff dans le forum Assembleur
    Réponses: 2
    Dernier message: 31/01/2006, 18h54
  5. Je besoin d'aide pour terminer mon code
    Par Paulinho dans le forum C++
    Réponses: 7
    Dernier message: 07/11/2005, 00h30

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