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 :

Problème avec Activesheet [XL-2016]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Janvier 2021
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Janvier 2021
    Messages : 6
    Par défaut Problème avec Activesheet
    Bonjour,

    Je ne sais pas si quelqu'un a déjà rencontré ce problème, mais ActiveSheet ne renvoie pas un objet sheet. Si j'utilise un ActiveSheet.name il me renvoie le nom sur le debug.print.
    j'utilise mon code pour réinitialiser un userform, dans une autre macro je n'ai pas ce problème pourtant le principe est le même.
    quelqu'un aurait une idée? le code n'a rien d'extraordinaire
    merci de votre collaboration

    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
    Sub AlimenterTxtBox()
    Dim f2 As Worksheet
    Dim l As Integer
     
    Set f2 = ThisWorkbook.Sheets("SUP_Tools")
     
    l = f2.Range("A" & Rows.Count).End(xlUp).Row
    NumCountTool = 0
    Debug.Print ActiveSheet.Name
     
    Do While NumCountTool < l + 1 And ActiveSheet.Range("B11").Value = f2.Cells(NumCountTool, 1).Value
    NumCountTool = NumCountTool + 1
    Loop
    Debug.Print NumCountTool
     
    If f2.Cells(NumCountTool, 6) <> "" Then
                                         Me.OPT_Cloture.Value = False
                                        Else
                                        Me.OPT_Cloture.Value = True
    End If
     
    If f2.Cells(NumCountTool, 5) <> "" Then
                                         Me.OPT_Rapport.Value = False
                                        Else
                                        Me.OPT_Rapport.Value = True
    End If
     
    Me.TXT_DateClotue.Value = f2.Cells(NumCountTool, 7).Value
    Me.TXT_COM = f2.Cells(NumCountTool, 8).Value

  2. #2
    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 114
    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 114
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Votre demande n'est pas très claire pour moi.
    Que voulez-vous faire exactement ?

    Quelques remarques
    Je ne sais pas si quelqu'un a déjà rencontré ce problème, mais ActiveSheet ne renvoie pas un objet sheet.
    ActiveSheet EST un objet Sheet comme ActiveCell est un objet Range et ActiveWorkbook est un objet Workbook donc si vous voulez utiliser une variable objet de type WorkSheet, le code ci-dessous vous affichera le même résultat.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub t()
     Dim sht As Worksheet
     Set sht = ActiveSheet
     Debug.Print sht.Name
     Set sht = Nothing
    End Sub
    Si j'utilise un ActiveSheet.name il me renvoie le nom sur le debug.print.
    Il vous renvoie le nom dans la fenêtre d'exécution parce-que c'est vous qui l'avez voulu par votre instruction Debug.Print ActiveSheet.Name

    La feuille active (ActiveSheet) reste active même si l'on écrit ou lit dans une autre feuille comme vous le faites à l'aide de la variable objet f2

    Merci d'utiliser les balises prévues à cet effet lorsque vous publiez un code VBA
    Nom : balisesCode.gif
Affichages : 178
Taille : 24,2 Ko
    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

  3. #3
    Membre du Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Janvier 2021
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Janvier 2021
    Messages : 6
    Par défaut
    Bonjour Merci,

    Pour votre réponse et explication pour insérer le code sur le forum
    Mon problème s 'est résolu tout seul et devait correspondre à un bug.

    Le programme ne reconnaissant le activesheet en tant qu'objet Sheet, bien qu'il me renvoyait les propriéts de ce dernier.
    C'est une commande usuelle que j'utilise et ca ne me l'avait jamais.

    je met un resolu sur le forum.
    cdt

  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 114
    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 114
    Billets dans le blog
    53
    Par défaut
    Bonjour,

    Mon problème s 'est résolu tout seul et devait correspondre à un bug.
    C'est que vous avez changé la feuille active manuellement ou à l'aide de la méthode Activate.
    Comme je l'ai écrit dans ma réponse précédente "La feuille active (ActiveSheet) reste active même si l'on écrit ou lit dans une autre feuille comme vous le faites à l'aide de la variable objet f2"
    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

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

Discussions similaires

  1. Problème avec ActiveWorkbook et ActiveSheet
    Par pschmidtke dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 20/06/2006, 14h35
  2. Problème avec ActiveWorkbook et ActiveSheet
    Par pschmidtke dans le forum Access
    Réponses: 2
    Dernier message: 20/06/2006, 12h12
  3. Problème avec le type 'Corba::Any_out'
    Par Steven dans le forum CORBA
    Réponses: 2
    Dernier message: 14/07/2002, 18h48
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

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