avyrex1926
Messages postés360Date d'inscriptiondimanche 3 décembre 2006StatutMembreDernière intervention 3 janvier 2012
-
22 août 2007 à 00:14
avyrex1926
Messages postés360Date d'inscriptiondimanche 3 décembre 2006StatutMembreDernière intervention 3 janvier 2012
-
29 août 2007 à 01:49
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
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.
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 28 août 2007 à 02:27
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