vba excel problème pour une boucle

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

yayanne

XLDnaute Nouveau
Bonjour,

Voila j'ai des clients qui passent des commandes mais quand ils arrivent ils doivent dire s'ils sont des anciens ou des nouveaux clients. Si par exemple ce sont des anciens ils doivent rentrer leur identifiant et leur mot de passe dans deux inputbox et si c'est le bon identifiant il peut accéder à la commande. j'ai donc fait une boucle qui permet de retrouver ces données dans la table Clients et de les copier sur la première ligne du tableau et ensuite de supprimer le doublon.



Mais le souci c'est que je n'arrive pas à faire que si l'identifiant et le mot de passe sont faux que le client ne puisse pas accéder à la Page Commande et reste sur la page Espace client sans pour autant que cela insère une ligne vide dans ma table Clients. Merci d'avance.
 
Re : vba excel problème pour une boucle

Bonjour yayanne

A premiere vue , la sortie de ton inputbox ne convient pas.
Il faudrait une sortie du style
si reponse de "input box" = "" then exit sub.
Avec un bout de ton code ,je pourrais mieux voir les problème;

Cordialement
 
Re : vba excel problème pour une boucle

'ENTRER MOT DE PASSE ET IDENTIFIANT SI ANCIEN CLIENT
Sub deja_client()
i = 0
Dim vrai As Boolean
vrai = False
Reponse = MsgBox("Êtes-vous déjà client dans notre société ?", vbYesNo)
If Reponse = 6 Then
ligne = 10
Rep = InputBox(" Entrer votre identifiant")
Rep2 = InputBox("Entrer votre mot de passe")
While Sheets("Clients").Cells(ligne, 3) <> 0 And Sheets("Clients").Cells(ligne, 10) <> 0 ' Cette boucle Permet de rechercher l'identifiant de l'ancien client et copier la ligne correspondante avant l'insérer dans la 1ère ligne de la table Clients
cel = Sheets("Clients").Cells(ligne, 3)
cel2 = Sheets("Clients").Cells(ligne, 10)
If Rep = Sheets("Clients").Cells(ligne, 3) And Rep2 = Sheets("Clients").Cells(ligne, 10) And vrai = False Then

Sheets("Clients").Select 'Insérer une ligne dans la table client
Range("C10:L10").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove


For j = 3 To 10
cel3 = Worksheets("Clients").Cells(i + ligne, j).Value
Worksheets("Clients").Cells(10, j).Value = Worksheets("Clients").Cells(i + ligne + 1, j).Value
Next
vrai = True

Else

End If

ligne = ligne + 1

Wend
i = 11


cell = Worksheets("Clients").Cells(i, 3).Value ' Permet de rechercher la ligne que l'on a copié ci-dessus avant de la supprimer pour éviter les doublons
While Worksheets("Clients").Cells(i, 3).Value <> ""
cell = Worksheets("Clients").Cells(i, 3).Value
If Rep = Worksheets("Clients").Cells(i, 3).Value Then
For j = 3 To 10
Worksheets("Clients").Cells(i, j).Select
Selection.Delete Shift:=xlUp
Next
End If
i = i + 1
Wend

If Rep = "" Then Exit Sub 'La ligne suivante place la valeur saisie dans la cellule identifiant de la feuille active
Range("identifiant").Value = Rep
Sheets("Commande").Select
Else
Sheets("Clients").Select 'Insérer une ligne dans la table client avant d'ouvrir l'userform Nouveau client à partir de l'espace client
Range("C10:L10").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Sheets("Espace_clients").Select


nouveau_client.Show

End If

End Sub

Voici ce que j'ai mis alors la sa fonctionne mais j'ai un autre souci c'est que je veux que lorsque le client a mis un mauvais identifiant et un mauvais mot de passe qu'il reste sur la page Espace_client parce qu'avec cette boucle mm si sa ne bouge plus ma table client ben il a quand mm accès à la Commande !!

Merci d'avance
 
Re : vba excel problème pour une boucle

Bonjour,
Essaies comme ceci par exemple
Code:
Sub deja_client()
Dim Q1$, Q2$, c As Range
If MsgBox("Êtes-vous déjà client dans notre société ?", vbYesNo) = vbNo Then Exit Sub
With Sheets("Clients")
    Q1 = InputBox(" Entrer votre identifiant")
    If Q1 = "" Then Exit Sub
    Set c = .Range("C:C").Find(Q1) 'vérifie l'identifiant
    If c Is Nothing Then Exit Sub
    Q2 = InputBox("Entrer votre mot de passe")
    If Q2 = "" Then Exit Sub
    If CStr(.Cells(c.Row, 10)) <> Q2 Then Exit Sub 'vérifie le mot de passe
    'la suite du code
End With
End Sub
A+
kjin
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
6
Affichages
150
Retour