Avertissement en vba excel [Résolu]

Signaler
Messages postés
360
Date d'inscription
dimanche 3 décembre 2006
Statut
Membre
Dernière intervention
3 janvier 2012
-
Messages postés
360
Date d'inscription
dimanche 3 décembre 2006
Statut
Membre
Dernière intervention
3 janvier 2012
-
Bonjour èa tous,

Dans mon script, je dois entrer des données dans un tableau excel èa partir d'un UserForm.
Voici le script:
______________________________________________________________________
If TextBox1.Text = vbNullString Then
TextBox1.SetFocus
MsgBox "SÉLECTIONNEZ VOTRE CONNAISSEMENT S.V.P."
Else

msg = "VOULEZ-VOUS VRAIMENT ENREGISTER VOS DONNÉES?"
Style = vbYesNo + vbDefaultButton1
Réponse = MsgBox(msg, Style, Title)
If Réponse = vbYes Then

Sheets("Suivi Cargill").Select

Application.ScreenUpdating = False
Dim Ligne As Long

'Mettre PB dans la colone A
    Ligne = (Range("A1").End(xlDown).Row + 1)
    Range("A" & Ligne) = ComboBox1.Text
    Range("B" & Ligne) = DTPicker1
    Range("C" & Ligne) = TextBox1.Value
    Range("D" & Ligne) = TextBox2.Value
    Range("E" & Ligne) = TextBox3.Value
    Range("F" & Ligne) = TextBox4.Value
    Ligne = (Range("A1").End(xlDown).Row + 1)
   
    DTPicker1 = Date
    TextBox1 = vbNullString
    TextBox2 = vbNullString
    TextBox3 = vbNullString
    TextBox4 = vbNullString
ActiveWorkbook.Save
End If
End If

TextBox1.SetFocus
Application.ScreenUpdating = True
________________________________________________________

Maintenant, je voudrais qui si la valeur du TextBox1, se retrouve déja dans la colone C, qu'il m'afiche a l'écran un msg = "LES INFOS SONT DÉJA COMPILÉS?" et après, dans la ligne ou l'info du texbox1 se trouve,je veux qu'il met la ligne de A a F en couleur.

Merci de votre aide! 

3 réponses

Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Salut Avyrex,

il faut que tu comprennes le coup des boucles, et tu verras, ça ira tout seul 

Avant toute chose, il faut déterminer la dernière cellule utilisée afin d'éviter de boucler sur le reste de la colonne vide :

Dim DerLigne As Long
DerLigne =  Range("C65536").End(xlUp).Row
' Attention, si aucune donnée, ça provoque une erreur

'Ensuite, ayant le plage de recherche (donc de C1 à C DerLigne), il faut rechercher ta valeur.

'Comment boucler dans une colonne ? Grâce à notre objet Cells, et ses deux paramètres (Ligne, Colonne)'Pour Info, Cells(1, 2) B1 ; Cells(2, 5) E2

'Tu peux remplacer le numéro de la ligne ou de la colonne par une variable. La preuve, on va boucler pour ta recherche :

Dim i As Long

For i = 1 To DerLigne
   ' DerLigne se calcul dynamiquement, c-à-d que si ta colonne va jusqu'à la ligne 1234, ce sera la valeur de DerLigne
   ' Si tu fais MsgBox Cells(i, 3).Value, tu auras ce qui se trouve dans C1, puis C2, puis C3, etc... jusqu'à DerLigne
   
   ' Donc là, il faut comparer :
   If TextBox1.Text = Cells(i, 3).Value Then
      ' Donc là on rentre dans la condition, 2 choses à faire, 1/ afficher ton message, 2/ sortir de la boucle :
      MsgBox = "LES INFOS SONT DÉJA COMPILÉS !"
      Exit For
   End If
Next i

~ <small> Mortalino ~ Colorisation automatique </small>

Voilà, c'était la minute Mortalino's Help ; vu l'heure, fallait que je me lâche

@++

<hr width ="100%" size="2" />( Nouveau forum : Exclusivement Office & VBA/STRONG>
Messages postés
360
Date d'inscription
dimanche 3 décembre 2006
Statut
Membre
Dernière intervention
3 janvier 2012
3
oups, ne pas tenir compte du : 'Mettre PB dans la colone A

pas bon  lolll
Messages postés
360
Date d'inscription
dimanche 3 décembre 2006
Statut
Membre
Dernière intervention
3 janvier 2012
3
i beaucoup, ça fonctionne!