VBA Sélection de plage de cellules sous condition

Bonjour,

je me heurte depuis pas mal de temps sur une macro que j'aimerais faire, sans succès. Je viens donc solliciter votre aide.

j'aimerais créer une macro qui me sélectionnerait les cellules des colonnes D à G dans les lignes incomplètes uniquement. (en jaune) afin de pouvoir les déverrouiller.

Je peux vous envoyer le fichier si besoin.

Merci d'avance de votre aide, bonne soirée



9 réponses

  1. Bonjour
    j'ais encore jouer

    faire un clic droit a partir de la colonne H dans la feuille donnée

    http://cjoint.com/?3LrlWIyDhBY

    Aller du courage HI

    A+

    Maurice
    0
    1. Contributeur
      Bonjour,

      à tester :
          Dim pl As Range
          Set pl = [D5].Resize(Cells(Rows.Count, 1).End(xlUp).Row - 4, 4).SpecialCells(xlCellTypeBlanks).EntireRow
          If Not pl Is Nothing Then
              pl = Intersect([D:G], pl).Locked = False
          End If

      eric

      En essayant continuellement, on finit par réussir.
      Donc plus ça rate, plus on a de chances que ça marche.(les Shadoks)
      En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
      0
      1. merci Eric, je regarderai ça plus tard. En tout cas je ne suis pas du même niveau en VBA, je n'y comprends rien à ce que tu as écris, enfin pas grand chose lol.
        A + bonne soirée
        0
    2. Bonjour
      j'ai un jouer avec ton fichier

      tu a peux etre des truc a prendre pour toi

      http://cjoint.com/?3LqsTuwBRXh

      A+

      Maurice
      0
      1. bonjour,
        merci il y a en effet des trucs, par contre j'ai du mal à m'y retrouver. Je vais m'y employer.
        A+
        0
    3. Bonjour
      a mettre dans un module

      Sub RetourAccuil()
      ' retour à l'accueil
      ActiveSheet.Unprotect
         Range("H5:M" & Rows.Count).Locked = True
            For L = 4 To Range("A" & Rows.Count).End(xlUp).Row
               For C = 8 To 13
                  If Cells(L, C).Value = "" Then
                     Cells(L, C).Locked = False
                  End If
               Next
            Next
      ActiveSheet.Protect
          UserForm1.Show 1
      End Sub
      

      A+
      Maurice
      0
      1. merci Maurice, par contre ça me déverouille aussi les cellules des lignes pleines
        Je ne vois pas ou tu aurais pu mettre la condition qui fait que qd une ligne est pleine on ne la déverouille pas. Peut être pourrais tu m'expliquer.
        Meci en tout cas
        0
    4. Bonjour

      voilà un fichier sans données "sensibles" le mot de passe pour la collecte est c et pour traitement, c'est t .

      https://www.cjoint.com/?0LpnAVDaME3

      tout est comme l'original, sauf les mots de passe de feuille, classeur et vba désactivés

      Merci
      0
      1. Bonjour

        Donne au moins un model pour voir ce que tu as fait

        Maurice
        0
        1. Bonjour,
          tout d'abord, merci de vos réponse.
          Je m'explique:
          ce que je souhaite, c'est que certaines personnes entrent dans le fichier par le biais d'un MdP et , ça c'est ok, ensuite que leur soit accessible uniquement les cellules des colonnes H à M des lignes incomplètes, les seules qu'il s aient le droit de modifier.
          Je gère les protection / déprotections, mais pas le dévérouillage de ces seules cellules. A la fermeture, je reprotège tout.
          Est un peu plus clair?
          Sinon, la MFC ok, mais comment l'intégrer en macro?
          Merci, bonne journée
          0
          1. Bonjour,

            Pour abonder dans le sens de Mike-31, après avoir créé la mise en forme conditionnelle tu peux appliquer un filtre sur la couleur des cellules des colonnes D à G, ce qui te permettra de les sélectionner facilement pour les déverrouiller.

            A+
            0
            1. Bonjour,
              j'ai bien fait la partie mise en forme conditionnelle sans pb voici la condition: "=ET(NBVAL($H4:$M4)<6;NBVAL($A4:$G4)=7)" qui s'applique à la plage "$H4:$M13000", ça fonctionne pour colorer les cellules en jaune, mais je ne sais pas les sélectionner dans une macro. Je précise que toutes mes lignes en dessous de la 4 sont des copies de la ligne 4 que je rempli au fur et à mesure des entrées dans mon tableau.
              Merci de ton aide si tu as une piste.
              Bonne soirée
              0
            2. Contributeur
              On s'est croisés, voir ici
              0
          2. Bonsoir,

            Pourquoi veux-tu faire une macro pour ça, la mise en forme conditionnelle le fait très bien
            sélectionne la plage exemple D2:G50 et mise en forme conditionnelle, la formule est
            =NBVAL($D2:$G2)<4
            format et choisir la couleur de remplissage des cellules

            En relisant la demande je pense avoir mal compris, si tes lignes en jaune sont incomplètes, tu veux les verrouiller, mais pour les rendre inaccessible, il faut également protéger la feuille, mais quel intérêt, tu peux en dire plus s'il te plaît

            A+
            Mike-31

            Une période d'échec est un moment rêvé pour semer les graines du savoir.
            0