Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 03/02/2012, 14h20   #1
Candidat au titre de Membre du Club
 
Inscription : décembre 2005
Messages : 146
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 146
Points : 12
Points : 12
Par défaut Probleme de condition

salut a tous
voila , j'ai un code qui me pose probleme.
En fait il y a deux condition a verifier et en fonction du resltat de ces derneres , des actions différente a effectuer .

Code :
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
 
Private Sub BtnConfirm_click()
 
    With Sheets("listing")
 
        For i = 1 To 20
            If Cells(i, 1) = txt_noms Then ' Je verifie si le nom existe deja
                MsgBox ("Cette personne existe deja")
                combobox1 = txt_noms
                GoTo line1
            End If
        Next i
 
    End With
 
            If txt_noms = "" Or textbox9 = "" Or combobox2 = "" Then ' verification des case vide
                MsgBox ("Il manque une ou des case(s) a remplir")
            Else
                Sheets("listing").Range(A999) = txt_noms ' si tout ok je copie le nom de la personne dans la case
 
line1:
                Tri ' fonction que me remet la liste des noms dans l'ordre alphabetique, je ne sais pas comment on ecrit dans la derniere cellule d'une collone d'ou la case 999
                txt_noms.Visible = False
                BtnConfirm.Visible = False
                inicombobox1
                combobox1 = txt_noms
                End If
 
 
End Sub
voici mon probleme

Si la personne n'existe pas , je verifie que les case ne sont pas vide , la tout est ok
Par contre si la personne existe deja, ca ne verifie pas les case, la macro continue.

J'aimerais que la verif des case vide se fasse en premier et si aucune n'est vide , me dire ( éeme if) si la personne existe deja et continuait la fonction.

En fait , si la personne n'existe pas , je la cré puis je lui ajoute des valeur mais si elle existe , ca me le dit et ca lui ajoute les valeur.

J'espere que qqun m'a compris

merci
zouille est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2012, 14h43   #2
Expert Confirmé Sénior
 
Avatar de mercatog
 
Inscription : juillet 2008
Messages : 5 848
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 5 848
Points : 13 907
Points : 13 907
Quelque chose comme ceci
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Private Sub BtnConfirm_click()
Dim c As Range
 
If txt_noms = "" Or textbox9 = "" Or combobox2 = "" Then    ' verification des case vide
    MsgBox "Il manque une ou des case(s) a remplir"
Else
    With Worksheets("listing")
        'on cherche la cellule contenant txt_noms dans la colonne A
        Set c = .Range("A:A").Find(txt_noms, LookIn:=xlValues, LookAt:=xlWhole)
        If Not c Is Nothing Then
            Set c = Nothing
            MsgBox "Cette personne existe deja"
        Else
            .Cells(.Rows.Count, "A").End(xlUp)(2) = txt_noms
        End If
    End With
    Tri
    txt_noms.Visible = False
    BtnConfirm.Visible = False
    inicombobox1
    combobox1 = txt_noms
End If
End Sub
__________________
Cordialement.
mercatog est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 03/02/2012, 17h47   #3
Candidat au titre de Membre du Club
 
Inscription : décembre 2005
Messages : 146
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 146
Points : 12
Points : 12
j'ai testé mais j'ai un bug

Il y a bien la vérification des cellules vide mais après il y a un message d'erreur disant que l'article n'appartient pas a la sélection:


sur cette ligne :
Code :
 Set c = .Range("A:A").Find(txt_noms, LookIn:=xlValues, LookAt:=xlWhole)
zouille est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h17.


 
 
 
 
Partenaires

Hébergement Web