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

Excel Discussion :

Empêcher la sélection multiple de feuilles [Toutes versions]


Sujet :

Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2016
    Messages : 6
    Points : 3
    Points
    3
    Par défaut Empêcher la sélection multiple de feuilles
    Bonjour,

    Je cherche depuis plusieurs jours une solution au problème suivant... sans aucun succès, au point que je finis par douter qu'il en existe une...

    J'ai un fichier comportant plusieurs feuilles avec des zones de saisie dans chacune d'elles. Ces zones sont donc évidemment des cellules déverrouillées. Je souhaiterais sécuriser complètement la saisie : par inadvertance, ignorance ou maladresse, l'utilisateur peut sélectionner plusieurs feuilles et donc modifier par sa saisie plusieurs feuilles en même temps sans s'en apercevoir ! Y aurait-il un moyen simple d'empêcher ça en VBA ?

    Merci d'avance de vos lumières et de votre aide.

    JLC

  2. #2
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Bonjour
    Si personne d'autre n'a de meilleure solution, en voilà une assez tirée par les cheveux.
    Elle consiste à sélectionner l'une des feuilles ayant fait l'objet d'une sélection multiple, mais non encore active elle-même.
    Je vais donc choisir la dernière de cette sélection multiple.
    Regarde ce que fait ceci, par exemple, après une sélection multiple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     Dim toto As Worksheet
     Set toto = ActiveSheet ' ===>> on mémorise la feuille de départ
     MsgBox ActiveWindow.SelectedSheets.Count ' ===>> tu vas y trouver le nombre des feuilles ainsi sélectionnées (il est > 1)
     Set titi = ActiveWindow.SelectedSheets.Item(ActiveWindow.SelectedSheets.Count) ' ===>> on détermine la dernière feuille de ce "groupe"
     titi.Select ' ===>>> on la sélectionne ===>> on va ainsi "casser" le groupe
     toto.Select ' ===>> on revient maintenant à la feuille où l'on se trouvait au départ
     MsgBox ActiveWindow.SelectedSheets.Count ' ===>> constatons qu'il n'y a maintenant plus qu'une seule feuille sélectionnée
    A toi de t'en servir. Je te suggère :
    - de mettre ce code au début de la procédure concernée et dont tu ne souhaites pas qu'elle agisse sur plusieurs feuilles.
    - d'adresser un message (msgbox) à l'utilisateur pour lui rappeler qu'il ne peut faire cela et qu'il doit donc recommencer
    - de quitter illico presto la procédure (exit sub) . Cela évitera le risque d'un traitement d'une feuille qui n'était finalement pas la bonne

    Voilà ! A moins que d'autres aient trouvé un meilleur moyen de s'en sortir
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  3. #3
    Candidat au Club
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2016
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par unparia Voir le message

    A toi de t'en servir. Je te suggère :
    - de mettre ce code au début de la procédure concernée et dont tu ne souhaites pas qu'elle agisse sur plusieurs feuilles.
    - d'adresser un message (msgbox) à l'utilisateur pour lui rappeler qu'il ne peut faire cela et qu'il doit donc recommencer
    - de quitter illico presto la procédure (exit sub) . Cela évitera le risque d'un traitement d'une feuille qui n'était finalement pas la bonne

    Voilà ! A moins que d'autres aient trouvé un meilleur moyen de s'en sortir
    Merci unparia pour cette réponse rapide comme l'éclair !

    Hélas, je ne vois pas en quoi ça résout le problème. Il est précisément d'identifier une possible "procédure concernée" où placer ce code. La question de fond (si elle a un sens) ne concerne pas tellement le code à écrire mais plutôt comment prendre à temps le contrôle en VBA pour empêcher que la situation ne se produise. Voici comment elle peut arriver : l'utilisateur sélectionne une première feuille. Là on peut facilement récupérer le contrôle (dans "Private Sub Worksheet_Activate()") mais c'est trop tôt et ça ne sert à rien à ce moment là. Puis il sélectionne une deuxième feuille (Ctrl clic sur le nom de la deuxième feuille: les deux feuilles sont sélectionnées) mais ceci, à ma connaissance, ne déclenche pas d'événement permettant de récupérer le contrôle en VBA. Rien n'empêche alors l'utilisateur de faire une saisie dans la première feuille qui est restée affichée. Là encore on peut facilement récupérer le contôle (dans "Private Sub Worksheet_Change(...), mais cette fois ci, c'est trop tard et la saisie a déjà été faite subrepticement sur sur la deuxième feuille en même temps que sur la première !...

    Merci encore de ton aide, mais là je sèche vraiment !

    JLC

  4. #4
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 951
    Points : 9 280
    Points
    9 280
    Par défaut
    Hello,
    tu peux essayer l'événement Workbook_SheetSelectionChange

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    If ActiveWindow.SelectedSheets.Count > 1 Then
    ActiveSheet.Select
    End If
    End Sub
    Le cas où cela ne fonctionne pas est si tu sélectionnes la même cellule que celle de départ dans ce cas il n'y a pas de "change".

    Sinon, il y a la grosse artillerie où la on bloque la saisie sur les autres feuilles :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Excel.Range)
    Dim vVal As Variant
     
    If ActiveWindow.SelectedSheets.Count > 1 Then
    Application.EnableEvents = False
    vVal = Target.Formula
    Application.Undo
    ActiveSheet.Select
    Target.Formula = vVal
    Application.EnableEvents = True
    End If
     
    End Sub
    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  5. #5
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Bonjour jurassic pork
    Mais tant ta première démarche que la seconde arriveront trop tard.

    A Jean-Louis Charles :
    Il te reste toujours la possibilité de ne pas afficher les onglets, ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveWindow.DisplayWorkbookTabs = False
    (et remettre à True en quittant le classeur)
    Une listbox permettant le choix d'une seule des feuilles pourra être utilisée pour permettre à l'utilisateur de choisir une feuille de travail.
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  6. #6
    Candidat au Club
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2016
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par unparia Voir le message
    Bonjour jurassic pork
    Il te reste toujours la possibilité de ne pas afficher les onglets, ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveWindow.DisplayWorkbookTabs = False
    Bonjour unparia,

    Excellent ! Voilà qui répond très bien au problème. J'aurais aimé y avoir pensé tout seul. Je suis sûr que je vais pouvoir finaliser une bonne solution au bout de cette piste.

    Un grand merci pour la promptitude et la pertinence !

    JLC

  7. #7
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Merci, mais je ne suis pas un génie
    Allez ... Attends un peu et je te concocte du joli-joli sur cette base ..
    A plus
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  8. #8
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Bonjour,

    Un grand merci pour la promptitude et la pertinence !
    Je le rappelle de temps en temps, je vois que tu es nouveau sur ce forum, pousses ta gratitude plus loin en cliquant sur en bas des messages de celui qui t'aura satisfait
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  9. #9
    Candidat au Club
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2016
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par casefayere Voir le message
    Bonjour,
    Je le rappelle de temps en temps, je vois que tu es nouveau sur ce forum, pousses ta gratitude plus loin en cliquant sur en bas des messages de celui qui t'aura satisfait
    Merci pour cette info. C'est fait !
    JLC

  10. #10
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Les choses promises étant des choses dûes, voilà ce que tu devrais faire :

    Exemple avec un classeur neuf
    - ajoute un Userform nommé choix_feuille et avec son caption = choix_feuille
    Medts (important) la propriété ShowModal de ce userform = False
    Sur ce userform :
    - un frame Frame1 et en son intérieur : une listbox Listbox1 et un Label Label1

    Ne te préoccupe ni de la taille ni de l'emplacement ni du userform, ni du Frame, ni de ce que tu y mets (listbox et Label)
    Et ce code :
    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
    37
    38
    39
    40
    41
    42
    43
    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
    (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Private Declare Function GetWindowLong Lib "user32" Alias _
    "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
    Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" _
    (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
    Private Declare Function DrawMenuBar Lib "user32" (ByVal hWnd As Long) As Long
     
     
     
    Private Sub UserForm_Activate()
     Dim hWnd As Long, Style As Long
     
      hWnd = FindWindow(vbNullString, Me.Caption)
      Style = GetWindowLong(hWnd, -16) And Not &HC00000
      SetWindowLong hWnd, -16, Style
      DrawMenuBar hWnd
      ahbon
    End Sub
     
    Private Sub ListBox1_Click()
      Worksheets(ListBox1.List(ListBox1.ListIndex)).Select
      ahbon
    End Sub
     
    Private Sub ahbon()
      With Me
        H = Application.Height
        L = Application.Width
        .Move 20, H - 20, L - 40, 30
        .Frame1.Caption = ""
        .Frame1.BorderStyle = 0
        .Frame1.Move 0, 0, L - 40, H - 40
        .Label1.Move 0, 0, 400, H - 40
        .Label1.Caption = " Sélectionnez une feuille dans la liste déroulante ci-contre  ===>>>"
        .Label1.Font.Bold = True
        .Label1.Font.Size = 10
        .ListBox1.Move 410, 0, L - 500, 30
        For Each Sh In Worksheets
          .ListBox1.AddItem Sh.Name
        Next
        End With
    End Sub
    Ceci étant fait :
    mets ceci dans le module de code de ThisWorlBook :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Workbook_Open()
      choix_feuille.Show
    End Sub
     
    Private Sub Workbook_SheetActivate(ByVal Sh As Object)
     choix_feuille.Show
    End Sub
    Dis-moi si cela te plait.

    EDIT : ajoute (je suis trop distrait par mon chat) ceci (en tout début de la procédure ahbon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ListBox1.Clear
      ActiveWindow.DisplayWorkbookTabs = False
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  11. #11
    Candidat au Club
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2016
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Merci beaucoup unparia !
    Je vais m'inspirer de ta production pour adapter une solution.
    A+
    JLC

  12. #12
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 926
    Points
    55 926
    Billets dans le blog
    131
    Par défaut
    Salut.

    Basiquement, pour détecter un groupe de travail, on utilise ActiveWindow.SelectedSheets.Count>1.

    En tenant compte du fait que Excel génère un évènement Change par feuille sélectionnée, on peut utiliser le code suivant pour:
    • prévenir l'utilisateur qu'il est en groupe de travail;
    • annuler la saisie.



    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
    Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
      Static Count As Integer
      On Error GoTo EndHandler
     
      If Count = 0 Then
        If ActiveWindow.SelectedSheets.Count > 1 Then
          Count = ActiveWindow.SelectedSheets.Count
          MsgBox "Vous êtes en groupe de travail. La saisie a été annulée", vbExclamation
          Application.EnableEvents = False
          Application.Undo
        End If
        Else
        Count = Count - 1
      End If
     
    EndHandler:
      Application.EnableEvents = True
    End Sub
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  13. #13
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 951
    Points : 9 280
    Points
    9 280
    Par défaut
    hello,
    unparia as-tu essayé mes solutions cumulées ?

    Bonjour jurassic pork
    Mais tant ta première démarche que la seconde arriveront trop tard.
    Peux-tu me donner le mode opératoire pour vérifier que ma solution ne fonctionne pas ? Je n'ai peut être pas vu tous les modes opératoires possibles pour la sélection multiple et les saisies.

    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  14. #14
    Candidat au Club
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2016
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par Pierre Fauconnier Voir le message
    Salut.

    Basiquement, pour détecter un groupe de travail, on utilise ActiveWindow.SelectedSheets.Count>1.

    En tenant compte du fait que Excel génère un évènement Change par feuille sélectionnée, on peut utiliser le code suivant pour:
    • prévenir l'utilisateur qu'il est en groupe de travail;
    • annuler la saisie.

    Merci beaucoup, j'intègre ça dans les tablettes !
    A+
    JLC

  15. #15
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 926
    Points
    55 926
    Billets dans le blog
    131
    Par défaut
    Tu peux évidemment intégrer ce test à l'ouverture, ce qui est moins gourmand que de tester à chaque "Change" d'une cellule du classeur. Mais le risque que l'utilisateur passe en groupe de travail avant la saisie est alors présent. Ceci dit, on ne sait pas passer en [groupe de travail] par erreur ou distraction.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Workbook_Open()
      If ActiveWindow.SelectedSheets.Count > 1 Then
        MsgBox "Attention. Mode [Groupe de travail] activé", vbExclamation
      End If
    End Sub
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  16. #16
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Bonjour Pierre Fauconnier
    Ceci dit, on ne sait pas passer en [groupe de travail] par erreur ou distraction
    Et pourtant, cet accident est vite arrivé :
    - un doigt sur la touche maj et un clic sur l'onglet marqué "Feuil3" alors que la feuille active est Feuil1
    Entre autres (pour ceux, par exemple, dont le chat a comme le mien de fort mauvaises habitudes et cherche à détourner mon attention du clavier).
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

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

Discussions similaires

  1. Sélection d'une feuille excel avec une listbox
    Par felibelle dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 25/07/2022, 17h27
  2. [XL-2003] Sélection multiple sur des feuilles différentes
    Par Sibuxian dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 01/06/2010, 09h43
  3. Réponses: 1
    Dernier message: 08/12/2006, 16h00
  4. [JList] bloquer la sélection multiple
    Par soad dans le forum Composants
    Réponses: 2
    Dernier message: 05/08/2004, 22h28
  5. Empécher la sélection du texte des pages dans un WebBrowser
    Par DevelOpeR13 dans le forum Web & réseau
    Réponses: 2
    Dernier message: 05/06/2003, 18h36

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