Liste déroulante Excel et boucle

Bonjour tout le monde,

Voici le lien: https://www.cjoint.com/c/FHcjfqWTWvG

Sauriez-vous comment faire pour mettre la liste déroulante dans une feuille et la Base de donnée ou la boucle s'effectue dans une autre feuille?

Pour empêcher, dans la suite, des utilisateurs de tripoter la BDD?

Merci d'avance.

J'ai code VBA: ci dessous:

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 'Macro qui s'éxécute à chaque nouvelle sélection de cellule sur la feuille

Dim DL As Long, DC As Long 'Définition des variable (ne pas toucher)

DL = Cells(Application.Rows.Count, 1).End(xlUp).Row 'Détermine la dernière ligne (en fonction de la colonne A, mettre la colonne qui est remplie le plus bas)
DC = Cells(1, Application.Columns.Count).End(xlToLeft).Column 'Détermine la dernière colonne (en fonction de la ligne 1)

Range("F3").Validation.Delete 'Supprime la liste déroulante de la cellule J3

Range("G3:G2000").ClearContents 'Supprime les valeurs de G3 à G2000

With Range("F3").Validation 'Crée la liste déroulante en F3
.Add Type:=xlValidateList, _
AlertStyle:=xlValidAlertStop, _
Formula1:="=" & Range(Cells(1, 2), Cells(1, DC)).Address 'Les valeurs de la liste déroulante vont de la cellule B1 (Celle(ligne, colonne)) à la cellule Dernière colonne 1 (Cells(ligne, DC donc dernière colonne)
End With

y = 3 'Définit la variable y = 3

For j = 2 To DC 'Boucle pour j allant de la colonne 2 à la dernière colonne

If Cells(1, j).Value = Range("F3").Value Then 'Si la cellule de la colonne j ligne 1 = Cellule J3 alors

    For i = 2 To DL 'Boucle pour i allant de la ligne 2 à la dernière ligne

    If Cells(i, j) = "X" Then 'Si la cellule de ligne i et de la colonne j = "x" alors

        Range("G" & y).Value = Range("A" & i).Value 'La cellule de la colonne K et de la ligne y (définit comme étant égal à 3) = La cellule de la colonne A et de la ligne i (la machine quoi)

        y = y + 1 'Incrémente y de 1, ce qui veut dire qu'à la prochaine condition, y sera égal à 4 puis 5 puis 6...

    End If 'Fin de la condition

    Next i 'Prochaine ligne de la boucle i

End If 'Fin de la condition

Next j 'Prochaine ligne de la boucle j

End Sub 'Fin de macro

Bonjour,

tu peux via F4 (prorpiété de la feuille) dans l'éditeur VBA, mettre la feuille "à ne pas toucher" par verryhidden

P.

screenshot097

Bonjour Patrick,

Merci pour ta réponse,

Mais je ne la comprend pas, si je cache une feuille, qu'est que cela va changer?

Sachant que pour le moment, tout est dans une feuille?

Peux-tu m'apporter plus de précisions stp?

Merci d'avance,

re,

Je me disais que ta liste source qui rempli la liste de validation peut être dans une feuille cachée et/ou protégée, ce qui empêche aux utilisateurs de modifier.

pas certain d'avoir compris ta demande.... neurone en vacances

P.

Oui c'est exactement ce que j'aimerais faire,

mais je n'arrive à modifier le code:

https://www.cjoint.com/c/FHdoZbIzYFG

Voici le lien,

on a bien les deux onglet, mais le code ne fonctionne pas,

pourrais-tu m'aider?

il doit y avoir un problème de syntaxe.

Merci d'avance,

Bonjour,

un truc de ce genre (à peaufiner)

"enter" après le choix dans liste déroulante

P.

Rechercher des sujets similaires à "liste deroulante boucle"