IF then end If

Résolu/Fermé
fifidaix Messages postés 8 Date d'inscription mercredi 28 novembre 2012 Statut Membre Dernière intervention 1 mars 2020 - Modifié le 1 mars 2020 à 18:57
fifidaix Messages postés 8 Date d'inscription mercredi 28 novembre 2012 Statut Membre Dernière intervention 1 mars 2020 - 1 mars 2020 à 19:23
Bonjour,

En fonction du contenu de Cells(i, 1) (1 de 2 à4), je veux écrire dans Cells(i, 2 à 4) "3402" si le contenu est "MATISSE"
d'où mon code ci-dessous
En pas à pas et en traçant i , Cells(i, 1) et Cells(i, 2)
j'ai bien Cells(A2)="MATISSE", Cells(A3)="MATISSE", et Cells(A4) = autrechose
mais je ne passe pas sur l'instruction Cells(i, 2) = "3402" et donc pas de mise à jour dans B2 et B3 !!!
Je ne comprends pas pourquoi: mon classeur n'est pas protégé en écriture (je peux écrire 3402 à la main dans B2 et B3)

Sub secondaire()

Dim i As Integer

For i = 2 To 4

If Cells(i, 1) = "MATISSE" Then
Cells(i, 2) = "3402"

End If

Next i
End Sub

MERCI !!!

Configuration: Windows / Firefox 73.0

2 réponses

jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
1 mars 2020 à 19:15
Bonjour,

A l'avenir, merci d'utiliser les BALISES DE CODE pour poster du code sur le forum (y choisir le langage Basic )
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

Ensuite.. il se peut que ta cellule contienne des espaces et/ou que la valeur ne soit pas en majuscule...
Essaye ça :
Sub secondaire()
Dim cValue As String
Dim i As Integer

For i = 2 To 4
    cValue = UCase(Trim(Cells(i, 1).Value)) 'On vire les espaces superflus et on force en Majuscule
    If cValue = "MATISSE" Then
        Cells(i, 2) = "3402"
    End If

Next i
End Sub


0
fifidaix Messages postés 8 Date d'inscription mercredi 28 novembre 2012 Statut Membre Dernière intervention 1 mars 2020
1 mars 2020 à 19:23
La condition Avec like '*MATISSE*" au lieu de ="MATISSE" ç'a marche; il y a des espaces probablement en plus....
et avec des parenthèses autour de la condition , c'est mieux....


MERCI!!!
0