Renseigner des colonnes depuis un formulaire et comparer valeurs

Résolu/Fermé
mifu Messages postés 2 Date d'inscription jeudi 11 décembre 2014 Statut Membre Dernière intervention 16 décembre 2014 - 11 déc. 2014 à 22:54
 Mifu - 17 déc. 2014 à 15:59
Merci d'avannce de votre aide!je sèche grave!!!
Voilà, mon problème est le suivant:
Je veux renseigner deux colonnes (A et B) dans une feuille excel depuis un formulaire et je veux qu'excel verifie si cette valeur que je rentre existe dans une plage de valeur que j'ai defini au préalable, si oui il renvoie la valeur dans la colonne A et sinon, dans la colonne B par exemple.
Merci encore de me repondre vite svp!!!

4 réponses

ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
11 déc. 2014 à 23:20
Bonsoir Mifu, bonsoir le forum,

Explications assez vagues... Formulaire ? Est-ce une UserForm ? Avec une textbox et un CommandButton pour envoyer les données vers le tableau ? En plus il te faut ça vite !
Ben tiens alors :

Private Sub CommandButton1_Click()
Dim O As Object 'déclare la variable O (Onglet)
Dim PL As Range 'déclare la variable PL (PLage)
Dim R As Range 'déclare la variable R (Recherche)

Set O = Sheets("Feui1") 'définit l'onglet O (à adapter)
Set PL = Sheets("Feuil2").Range("A1:A100") 'définit la palge PL (à adapter)
Set R = PL.Find(Me.TextBox1.Value, , xlValues, xlWhole) 'définit la recherche R
If R Is Nothing Then 'condition : si aucune occurrence n'est trouvé dans la plage PL
    'renvoie la valeur de la TextBox1 dans la première cellule vide de la colonne 1 (=A)
    O.Cells(Application.Rows.Count, 1).End(xlUp).Offset(1, 0).Value = Me.TextBox1.Value
Else 'sinon
    'renvoie la valeur de la TextBox1 dans la première cellule vide de la colonne 2 (=B)
    O.Cells(Application.Rows.Count, 2).End(xlUp).Offset(1, 0).Value = Me.TextBox1.Value
End If
End Sub


tu adapteras...
0
Merci Thau Theme, desolé de ne pas avoir fourni assez d'element. En fait mon formulaire est un userforme et a un textbox et un bouton de commande. Donc j'ai une plage de valeur (des numéros de telephones) dans la feuil2. Dans ma feuil1 j'ai le tableau avec 2 colonnes titré A et B. Quand je renseigne mon userforme (j'entre le numero de tel) et je clique sur ok(ajouter) je veux qu'excel verifie si ce numero figure dans la plage de numero qui se trouvent dans la feuil2 et si ce numero figure effectivement, il me renvoie le numero dans la colonne A du tableau de la feuille 1 sinon il la met dans la colonne B, ainsi de suite.
J'espère chers experts etre assez complet cette fois ci!
Merci!
0
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
12 déc. 2014 à 23:16
Bonsoir Mifu, bonsoir le forum,

Il me semble que c'est, à peu de choses près, le code que je t'ai proposé. Tu aurais perdu moins de temps à le tester qu'à nous faire ton petit laïus...
0
Dac Thau Theme tout à fait raison. J'ai essayé ton code il marche à merveille, merci. Mais j'ai un autre souci : c'est que d'abord je m'excuse, je n'ai pas su exprimer clairement mes idées. En fait je dispose d'un tableau à 3 colonnes avec la première colonne pour entrer le nom donc mon userform à 2 textbox, maintenant les deux colonnes recoivent les num de tel. Ce que je veux c'est que pour un même nom les numero que je rentre dans l'autre textbox doivent etre sur la meme ligne que ce nom de sorte à avoir la liste des numero pour ce Monsieur. Ton code il renvoie à la première cellule vide ce qui me donne un nom par exemple à la ligne 5 et son numero correspondant se trouve dans l'autre colonne à la ligne 2 alors que je dois avoir ses numeros correspondant à partir de la ligne 5 vers le bas.
Merci de me faire encor ton coup de génie. Vous êtes formidables.
En attente vivement de reponses!!!
0
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
13 déc. 2014 à 22:42
Bonsoir Mifu, bonsoir le forum,

Si j'ai bien compris, essaie comme ça :

Private Sub CommandButton1_Click()
Dim O As Object 'déclare la variable O (Onglet)
Dim DEST As Range 'déclare la variable DEST (cellule de DESTination)
Dim PL As Range 'déclare la variable PL (PLage)
Dim R As Range 'déclare la variable R (Recherche)

Set O = Sheets("Feui1") 'définit l'onglet O (à adapter)
'définit la cellue de destination DEST, première cellue vide de la colonne 1 (=A) de l'onglet O
Set DEST = O.Cells(Application.Rows.Count, 1).End(xlUp).Offset(1, 0)
Set PL = Sheets("Feuil2").Range("A1:A100") 'définit la palge PL (à adapter)
DEST.Value = Me.textbox1.Value 'renvoie le nom dans la cellule DEST
Set R = PL.Find(Me.textbox2.Value, , xlValues, xlWhole) 'définit la recherche R
If R Is Nothing Then 'condition : si aucune occurrence n'est trouvé dans la plage PL
    'renvoie la valeur de la TextBox2 dans DEST décalée d'une colonne à droite (colonne B)
    DEST.Offset(0, 1).Value = Me.textbox2.Value
Else 'sinon
    'renvoie la valeur de la TextBox2 dans DEST décalée de deux colonnes à droite (colonne C)
    DEST.Offset(0, 2).Value = Me.textbox2.Value
End If
End Sub

0
mifu Messages postés 2 Date d'inscription jeudi 11 décembre 2014 Statut Membre Dernière intervention 16 décembre 2014
16 déc. 2014 à 22:51
Merci Thau Theme, tu m'as depanné car ton code fonctionne à merveille. Vous êtes formidable ainsi que le forum!
0
Tant qu'on a des gens formidables comme Thau Theme pourquoi ne pas perfectionner plus son idée!!!Merci une fois de plus Thau Theme. Je sollicite encore une fois de plus ta gentillesse et d'ailleurs tous les bienfaiteurs de ce forum de votre aide. Desolé pour le laïus Thau Theme. Toujours dans le même ordre d'idée que ma précédente préoccupation à savoir de remplir les lignes de colonnes à travers un userform qui affecte automatiquement les valeurs entrées dans un textbox si ces dernières figurent dans une plage de données existante dans la feuille2 par exemple. Je me rends compte que j'ai beaucoup de données à rentrer, en fin des numéros de téléphones. Bon je dispose d'une plage :exemple la colonne A de la feuille 2 qui contient des numéros de téléphone (ma base de numéro) et dans B tous les numéros appelés d'ailleurs la plupart ne figurent pas dans la base de numéro et je voudrais que dans ma feuille1 quand je clique sur la commande exécuter, elle classe dans la colonne A de la feuille1 tous les numéros qui sont dans la base (c'est à dire présent dans la colonne A de la feuille 2) et en B tous ceux qui ne sont pas dans la base. Cela m'évitera de taper manuellement dans un userform plus de 1000numéros. Attention: les numéros sont classés à la suite des uns et autres.
Exemple: quand j'ai un numéro dans la ligne 1, le deuxième numéro se mettra dans la ligne 2 que ce soit dans la colonne A ou B
0