RECHERCHE DE DONNEES

  • Initiateur de la discussion Initiateur de la discussion JORDAN
  • 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 !

J

JORDAN

Guest
Bonjour,

Je recherche comment faire en macro vba sous excel pour retrouver un texte d'une cellule en fonction d'une autre cellule

Ex :

CELLULE A1 : BATEAU
CELLULE A2 : MAISON
CELLULE A3 : AVION

CELLULE B1 : MER
CELLULE B2 : TERRE
CELLULE B3 : AIR

Dans une variable, j'ai le mot "BATEAU", je souhaite mettre dans une autre variable le mot "MER" correspondant -> cellule A1 / B1

j'èpère avoir été assez clair

Merci de votre aide
 
Bonsoir Jordan

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Range("A1").Value = "Bateau" Then
Range("B1").Value = "Mer"
End If
If Range("A2").Value = "Maison" Then
Range("B2").Value = "Terre"
End If
If Range("A3").Value = "Avion" Then
Range("B3").Value = "Air"
End If
End Sub

Un peu simpliste surement ...

Je risque le ZOP !
@+ GD
 
Bonjour Jordan, Gérard, le forum

Je profite du fil pour une petite question :
dans ce code peut on rajouter plusieurs critères ?

If Range("A2").Value = "Maison" Then
Range("B2").Value = "Terre"
End If

exemple Maison, caravane, chateau etc etc ....

et comment formuler ?

et si aucune des conditions n'est vrai alors mettre en B2 " y'a rien" ?

merci a vous

JC
 
BOnjour à tous

Si tu n'a pas beaucoup de données tu peus aussi utiliser select case, sinon tu peux passer par un tableau :

en imaginant tes données en colonne A et B, si tu veux renvoyer la valeur de B au regard de la cellule sélectionner en A :

Public Sub vev()
Dim tablo As Variant
Dim i As Integer
tablo = Range("a1:b19")
For i = 1 To UBound(tablo, 1)
If tablo(i, 1) = ActiveCell.Value Then MsgBox tablo(i, 2)
Next i
End Sub

Bon ben...euh..... je crois que j'ai bien zoppé, là.

Salut
Hervé
 
re tout le monde,

je m'y ferai donc jamais !!!!!!!!

pourrais tu me faire un petit code du genre

si E8 = produitA ou produitB ou produitC
alors E10 = Produit

Si E8 = objetA ou objetB ou objet C
alors E10 et I8 = Objet

si aucune condition est vrais alors E10 = "Y'a rien"

merci bcp

JC
 
re

Il me semblait bien que je zoppais dur.

Pour ceci 2 méthodes :

Une succession de if ...... and ...... and..... and...... then.
Peu pratique, difficile à débugger et code à rallonge.

Sinon, dans ce cas j'utilise un select case :

Public Sub vev2()
Select Case Range("e8").Value
Case "produitA", "produitB", "produitC": Range("e10") = "produit"
Case "objetA", "objetB", "objetC": Range("e10,i8") = "objet"
Case Else: Range("e10,i8") = ""
End Select
End Sub


SAlut
Hervé le zopien
 
re ..

génail je vé améliorer mon projet


mille merci !!

toi aui a l'air de te débrouiller en VBA j'ai un post plus haut intitulé " Amelioration VBA et format date"

si tu pouvais y jeter un oeil et m'aider ça serait cool

merci encore
JC
 
re le forum, Hervé

j'ai adapter ton code à mes besoins voilà ce que ça donne

Public Sub vev2()
Select Case Range("e8").Value
Case "Crédillis", "AXA Banque": Range("e10,I8") = "Banque"
Case "Euractiel", "Augt° Prime PP", "Euractiel Pro", "PERP P.P.": Range("e10") = "P.P."
Case Else: Range("e10") = "P.U."
End Select
End Sub

je l'ai mis dans feuil1

mais aucun résultat !!!

en E10 et I8 j'ai des listes de données. Cause a effet ?
je l'ai ai supprimé mais tjrs rien !

Merci bcp

JC
 
re

Ta macro fonctionne chez moi (???)

Ton souci doit venir du déclencheur, cette macro doit être associé à un bouton et placer dans un module standard.

Sinon pour la déclencher à l'aide d'un évenement tu place cette macro dans l'onglet souhaité (clique droit sur le nom de l'onglet, puis visualiser le code) :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Not Application.Intersect(Target, Range("e8")) Is Nothing Then
Select Case Target
Case "Crédillis", "AXA Banque": Range("e10,I8") = "Banque"
Case "Euractiel", "Augt° Prime PP", "Euractiel Pro", "PERP P.P.": Range("e10") = "P.P."
Case Else: Range("e10") = "P.U."
End Select
End If
End Sub

Salut
Hervé
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
10
Affichages
304
Réponses
5
Affichages
549
Retour