VBA - Rechercher par contenu variable

  • Initiateur de la discussion Initiateur de la discussion Llyod
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Llyod

XLDnaute Nouveau
Bonsoir,

Je reviens encore vers vous pour savoir si je peux concaténer 2 variables de texte en 1 variable. Je suis entrain de simplifier au maximum la rentrée des joueurs pour un tournoi. Dans cet userform, on peux soit afficher un joueur et faire les modifications soit remplir des textbox pour que le joueur soit ajouté dans le tableau.

Cette partie est achevée, je souhaite lorsque je créai un joueur, avoir une vérification dans mon tableau pour ne pas qu'il soit crée 2 fois. J'ai donc concaténer dans une colonne du tableau, le "Nom". "Prénom". Ensuite j'ai voulu faire une recherche mais mon code bloque à la concaténation des 2 variables.

Après avoir regardé sur les forums, je trouve presque rien ou que avec variables de type numériques, es-ce que cela est possible avec du texte ? Y'a t-il une méthode plus simple pour faire cette recherche ?

EDIT: J'obtiens une "Erreur de compilation: Incompatibilité de type"

Rechercher dans Feuil1 si le nom existe déjà -->

Dim Concatener As String, Plage As Range, Nom As String, Prenom As String, Recherche As String
Set Plage = ActiveSheet.Columns(7)
Nom = TextBox1.Value
Prenom = TextBox2.Value
Concatener = Nom & "." & Prenom

Recherche = Plage.Cells.Find(what:=Concatener, lookat:=xlWhole)


'Condition remplissage pour écrire sur la feuille suivante -->

If (ComboBox1.Value = "" And TextBox1.Value <> "" And TextBox2.Value <> "" And TextBox3.Value <> "" And TextBox4.Value <> "" And Recherche Is Nothing) Then

Worksheets("Feuil1").Activate

'Valeur de la case Nom dans le tableau
Dim a As Integer

With Worksheets("Feuil1")
'Déclaration de la variable "der_cell"
a = Columns("C").Find("", Range("C1"), xlValues).Row 'variable = recherche de la dernière ligne de la colonne "C"
Cells(a, "C") = TextBox1
...

Je vous remercie,

Baptiste
 
Dernière modification par un modérateur:
Re : VBA - Variable qui concatène 2 variables

si vous faites ce test est-ce ce que vous recherchez ???

VB:
Sub test()
Nom = "Durand" 'à remplacer par la valeur de la textbox1
Prenom = "Marcel" 'à remplacer par la valeur de la textbox2
concatener = "\" & Nom & "." & "\" & Prenom
MsgBox concatener
End Sub
 
Re : VBA - Variable qui concatène 2 variables

Merci cela fonctionne mais quand j'essaye dans mon code, j'ai toujours la meme erreur d'incompatibilité de type !
Comment peux t-on faire une recherche par rapport à une variable ?

EDIT : Après test, ca bloque sur cette ligne :
Recherche = Plage.Cells.Find(what:=Concatener, lookat:=xlWhole)
 
Dernière modification par un modérateur:
Re : VBA - Rechercher par contenu variable

Bonsoir,

Merci pour le fichier mais es-ce cela cherche vraiment ? Car j'ai essayé de changer de cellule Dupond.Marcel et il me sort qu'il ne l'a trouve pas..D'ailleurs je ne comprend pas la suite du code ou l'on indique ou se trouve la cellule !

MsgBox Recherche & " a été trouvé"
[G3] = "Dupond.Marcel"
MsgBox "recommencer pour voir l'erreur": Exit Sub
suite:

MsgBox "La Variable n'a pas été trouvée"
[G3] = "Dupont.Marcel"

J'ai essayé plusieurs solutions cette aprem, j'ai réussi à faire marcher un code un résolvant tout les problèmes d'incompatibilités. Cependant il me resort tout le temps la valeur Nothing 😡
Je vous mets à disposition le fichier, ca sera plus parlant.
Il s'agit de ce bout de code dans userForm1, et vous pouvez l'essayer en appuyant sur le bouton Joueurs 2.0.

Dim Concatener As String
Sheets("Feuil1").Columns("G:G").Select
Concatener = TextBox1.Value & "." & TextBox2.Value
Set cell = Selection.Find(What:=Concatener, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False)

'MsgBox Concatener

If cell Is Nothing Then
MsgBox "Pas trouvé"
Else
MsgBox cell.Address
End If

Je vous remercie,
Baptiste
 

Pièces jointes

Dernière modification par un modérateur:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
9
Affichages
382
Réponses
3
Affichages
595
Réponses
6
Affichages
544
Retour