Explication VBA

Bonjour,

J'aurai besoin d'explication détaillé sur le fonctionnement d'une programmation parceque je suis un peu largué notamment sur DO UNTIL LOOP:

Private Sub ok_Click()

controle = MsgBox("Etes-vous sur des données saisies ??", vbYesNo)

    If Titre = "" Or nom = "" Or pre = "" Or adresse = "" Or ville = "" Or postal = "" Then          
rep = MsgBox("Tous les champs doivent être renseigné", vbExclamation, "HO NOO!!")
    Else                                                   
        If controle = vbNo Then                            

            Else                                           
            Sheets("Client").Select                       
            cel = 9                                        
            Do Until IsEmpty(Range("B" & cel))             
            cel = cel + 1                                  
            Loop
            Range("a" & cel) = ref                         
            Range("b" & cel) = Titre                       
            Range("c" & cel) = nom                        
            Range("d" & cel) = pre                        
            Range("e" & cel) = adresse                     
            Range("f" & cel) = postal                      
            Range("g" & cel) = ville                       
            Range("h" & cel) = tel.Value                  
            Range("i" & cel) = entre                      
            Range("j" & cel) = mail                        
            Range("k" & cel) = fax.Value                   

            N_client.Hide                                 
            End If                                        
             End If                                                 
End Sub

Merci d'avance!!

Bonjour

Assez incompréhensible comme code car on se demande à quoi servent quelques instructions. De plus aucune de tes variables ne sont déclarées

Sinon un tentative d'explication :

Private Sub ok_Click()
Dim controle As Integer, controle as integer
Dim titre As String, nom As String, pre As String, adresse As String, ville As String, postal As String
Dim rep As Byte, cel As Byte
'question pour la confirmation des données saisies
controle = MsgBox("Etes-vous sur des données saisies ??", vbYesNo)
'Vérification que titre, nom, pre, adresse, ville, postal sont vides
If titre = "" Or nom = "" Or pre = "" Or adresse = "" Or ville = "" Or postal = "" Then
'si oui, on récupère le OK dans une variable "rep"
rep = MsgBox("Tous les champs doivent être renseigné", vbExclamation, "HO NOO!!")
Else
'variable controle prend la valeur 0 si la réponse est non
If controle = vbNo Then
Else
'selection de la feuille client
Sheets("Client").Select
'varaible cel = 9
cel = 9
'exécution d'une boucle tant que la cellule B... est vide
Do Until IsEmpty(Range("B" & cel))
cel = cel + 1
Loop
'remplissage des colonnes a, b,c,d,e,f,g,h,i,j,k avec les variables correpondantes
Range("a" & cel) = ref
Range("b" & cel) = titre
Range("c" & cel) = nom
Range("d" & cel) = pre
Range("e" & cel) = adresse
Range("f" & cel) = postal
Range("g" & cel) = ville
Range("h" & cel) = tel.Value
Range("i" & cel) = entre
Range("j" & cel) = mail
Range("k" & cel) = fax.Value
'on cache N_Client
N_client.Hide
End If
End If
End Sub

Le Do until loop est une bidouille qui te permet d'aller compléter les données plus bas dès que la cellule B est non vide.

Pas sûr (sans fichier) mais essaie plutôt :

Do Until Not IsEmpty(Range("B" & cel))
'remplissage des colonnes a, b,c,d,e,f,g,h,i,j,k avec les variables correpondantes
Range("a" & cel) = ref
Range("b" & cel) = titre
Range("c" & cel) = nom
Range("d" & cel) = pre
Range("e" & cel) = adresse
Range("f" & cel) = postal
Range("g" & cel) = ville
Range("h" & cel) = tel.Value
Range("i" & cel) = entre
Range("j" & cel) = mail
Range("k" & cel) = fax.Value
cel = cel + 1
Loop

A te relire

Bonsoir excelium, Dan

Dan, si je peux me permettre

A la vue du code, il me semble qu'il s'agit d'une procédure d'un bouton ok placé sur un userform

private sub ok_click ressemble a la déclaration du bouton ok

donc pour moi ref, titre, etc sont les valeurs des textbox et non des variables

le until boucle sur la colonne B a partir de la ligne 9

puis rempli les cellules de la ligne +1 avec les valeurs des saisie

Cordialement

Bob

re,

effectivement Bob71Au, j'y avais pensé également mais comme notre demandeur est "largué" comme il le dit, je me suis demandé s'il s'agissait d'une Userform ou de ce que j'ai expliqué.

Merci de ta précision en tout cas

Amicalement

Rechercher des sujets similaires à "explication vba"