Problème avec formule
Résolu/Fermé
pzyko
Messages postés
34
Date d'inscription
vendredi 27 juin 2014
Statut
Membre
Dernière intervention
8 août 2014
-
8 juil. 2014 à 10:26
pzyko Messages postés 34 Date d'inscription vendredi 27 juin 2014 Statut Membre Dernière intervention 8 août 2014 - 8 juil. 2014 à 11:56
pzyko Messages postés 34 Date d'inscription vendredi 27 juin 2014 Statut Membre Dernière intervention 8 août 2014 - 8 juil. 2014 à 11:56
A voir également:
- Problème avec formule
- Formule excel - Guide
- Formule si et - Guide
- Formule moyenne excel - Guide
- Formule excel pour additionner plusieurs cellules - Guide
- Mise en forme conditionnelle formule si - Guide
3 réponses
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 743
Modifié par pijaku le 8/07/2014 à 11:10
Modifié par pijaku le 8/07/2014 à 11:10
Bonjour,
Essaie ceci :
Edit : il y a des possibilités d'amélioration et d'adaptations.
Donc, en attente de votre retour....
Vergesst nicht : Wer Unrecht lange geschehen lässt, bahnt dem nächsten den Weg. »
14 septembre 1992,Willy Brandt
Essaie ceci :
Sub UnZero() Dim i As Long Dim Feuil1 As Worksheet, Feuil2 As Worksheet Dim MesDonnees() Set Feuil1 = Worksheets("Feuil1") 'A adapter le nom de la feuille Set Feuil2 = Worksheets("Feuil2") 'A adapter le nom de la feuille MesDonnees = Feuil1.Range("F1:F" & Feuil1.Range("F" & Rows.Count).End(xlUp).Row) For i = LBound(MesDonnees) To UBound(MesDonnees) 'test chien serpent If MesDonnees(i, 1) Like "*chien*" Or MesDonnees(i, 1) Like "*serpent*" Then Feuil2.Range("A" & i) = 1 Else Feuil2.Range("A" & i) = 0 End If 'test poisson chat If MesDonnees(i, 1) Like "*poisson*" Or MesDonnees(i, 1) Like "*chat*" Then Feuil2.Range("B" & i) = 1 Else Feuil2.Range("B" & i) = 0 End If 'test panda oiseau tortue If MesDonnees(i, 1) Like "*panda*" Or MesDonnees(i, 1) Like "*oiseau*" Or MesDonnees(i, 1) Like "*tortue*" Then Feuil2.Range("D" & i) = 1 Else Feuil2.Range("D" & i) = 0 End If 'test cheval vache If MesDonnees(i, 1) Like "*cheval*" Or MesDonnees(i, 1) Like "*vache*" Then Feuil2.Range("C" & i) = 1 Else Feuil2.Range("C" & i) = 0 End If Next i End Sub
Edit : il y a des possibilités d'amélioration et d'adaptations.
Donc, en attente de votre retour....
Vergesst nicht : Wer Unrecht lange geschehen lässt, bahnt dem nächsten den Weg. »
14 septembre 1992,Willy Brandt
pzyko
Messages postés
34
Date d'inscription
vendredi 27 juin 2014
Statut
Membre
Dernière intervention
8 août 2014
1
Modifié par pijaku le 8/07/2014 à 12:00
Modifié par pijaku le 8/07/2014 à 12:00
Je ne vois que cette partie de ton code :
Sub UnZero() Dim i As Long Dim Feuil1 As Worksheet, Feuil2 As Worksheet Dim MesDonnees
:/
Entre temps, j'ai essayé quelquechose qui me semble pas mal :
Cela fonctionne mais le problème c'est que je n'arrive pas à mettre plusieurs mots cibles :/
Sub UnZero() Dim i As Long Dim Feuil1 As Worksheet, Feuil2 As Worksheet Dim MesDonnees
:/
Entre temps, j'ai essayé quelquechose qui me semble pas mal :
Sub recherche_multiple()
Dim cible As String
Dim i As Integer
Dim derLigne As Long
With Sheets("Feuil1")
derLigne = .Range("F" & .Rows.Count).End(xlUp).Row
End With
cible = "chien"
For i = 2 To derLigne
If InStr(Sheets("Feuil1").Cells(i, 6).Value, cible) = 0 Then
Sheets("Feuil2").Cells(i, 1).Value = 0
Else: Sheets("Feuil2").Cells(i, 1).Value = 1
End If
Next i
End Sub
Cela fonctionne mais le problème c'est que je n'arrive pas à mettre plusieurs mots cibles :/
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 743
8 juil. 2014 à 11:37
8 juil. 2014 à 11:37
Et là, vois tu tout le code ?
Sub UnZero()
Dim i As Long
Dim Feuil1 As Worksheet, Feuil2 As Worksheet
Dim MesDonnees()
Set Feuil1 = Worksheets("Feuil1") 'A adapter le nom de la feuille
Set Feuil2 = Worksheets("Feuil2") 'A adapter le nom de la feuille
MesDonnees = Feuil1.Range("F1:F" & Feuil1.Range("F" & Rows.Count).End(xlUp).Row)
For i = LBound(MesDonnees) To UBound(MesDonnees)
'test chien serpent
If MesDonnees(i, 1) Like "*chien*" Or MesDonnees(i, 1) Like "*serpent*" Then
Feuil2.Range("A" & i) = 1
Else
Feuil2.Range("A" & i) = 0
End If
'test poisson chat
If MesDonnees(i, 1) Like "*poisson*" Or MesDonnees(i, 1) Like "*chat*" Then
Feuil2.Range("B" & i) = 1
Else
Feuil2.Range("B" & i) = 0
End If
'test panda oiseau tortue
If MesDonnees(i, 1) Like "*panda*" Or MesDonnees(i, 1) Like "*oiseau*" Or MesDonnees(i, 1) Like "*tortue*" Then
Feuil2.Range("D" & i) = 1
Else
Feuil2.Range("D" & i) = 0
End If
'test cheval vache
If MesDonnees(i, 1) Like "*cheval*" Or MesDonnees(i, 1) Like "*vache*" Then
Feuil2.Range("C" & i) = 1
Else
Feuil2.Range("C" & i) = 0
End If
Next i
End Sub
pzyko
Messages postés
34
Date d'inscription
vendredi 27 juin 2014
Statut
Membre
Dernière intervention
8 août 2014
1
Modifié par pijaku le 8/07/2014 à 12:00
Modifié par pijaku le 8/07/2014 à 12:00
Un grand merci pour ta réponse rapide. Je vais tester ce code de suite.
Entre temps, j'avais pu trouver une solution qui semble fonctionner aussi :
Entre temps, j'avais pu trouver une solution qui semble fonctionner aussi :
Sub rechmult()
Dim cible, cible2 As String
Dim i As Integer
Dim derLigne As Long
With Sheets("Feuil1")
derLigne = .Range("F" & .Rows.Count).End(xlUp).Row
End With
cible = "chien"
cible2 = "serpent"
For i = 2 To derLigne
If InStr(1, Sheets("Feuil1").Cells(i, 6), cible) = 0 And InStr(1, Sheets("Feuil1").Cells(i, 6), cible2) = 0 Then
Sheets("Feuil2").Cells(i, 1).Value = 0
Else: Sheets("Feuil2").Cells(i, 1).Value = 1
End If
Next i
End Sub