Instruction "Do" dans une macro (Excel 2010)

Résolu/Fermé
Ju@nita Messages postés 135 Date d'inscription mardi 11 juin 2013 Statut Membre Dernière intervention 19 mars 2018 - 2 août 2017 à 18:26
Ju@nita Messages postés 135 Date d'inscription mardi 11 juin 2013 Statut Membre Dernière intervention 19 mars 2018 - 2 août 2017 à 19:05
Bonjour,

On m'a déjà donné ceci à mettre dans une macro par le passé et j'essaie de le réutiliser ailleurs. Avant, c'était dans le but d'effacer quelque chose dans une colonne si c'était écrit autre chose dans une autre. Aujourd'hui, je veux RAJOUTER le mot DEPOT dans la colonne D si c'est écrit DEPOT dans la colonne C. Voici ce que j'ai mis dans ma macro:

Do
valeurB = ActiveSheet.Cells(3 + I, 3).Value
If valeurB = "DEPOT" Then
ActiveSheet.Cells(3 + I, 4).Value = "DEPOT"
End If
I = I + 1
Loop While valeurB <> ""

et ça fonctionne très bien. Par contre, j'ai une 2e donnée à faire rajouter. J'ai aussi le mot CORRECTION DE DEPOT d'écrit dans la colonne C pour lequel je veux rajouter aussi le mot DEPOT dans la colonne D. J'ai essayé ceci:
Do
valeurB = ActiveSheet.Cells(3 + I, 3).Value
If valeurB = "DEPOT" Then
ActiveSheet.Cells(3 + I, 4).Value = "DEPOT"
End If
I = I + 1
Loop While valeurB <> ""
Do
valeurC = ActiveSheet.Cells(3 + I, 3).Value
If valeurC = "CORRECTION DE DEPOT" Then
ActiveSheet.Cells(3 + I, 4).Value = "DEPOT"
End If
I = I + 1
Loop While valeurC <> ""

mais ça ne marche pas car on dirait que le VBA n'accepte pas d'en mettre 2. J'ai pourtant pensé à changer la valeurB pour valeurC, pensant que ça marcherait mieux. Mais j'ai été déçue. Donc, peut-on les mettre les 2 ensemble ? du genre : if valeurB = CORRECTION ou DEPOT ???

merci pour vos lumières.


A voir également:

2 réponses

ccm81 Messages postés 10520 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 janvier 2023 2 336
2 août 2017 à 18:58
Bonjour

Essaies comme ceci
Public Sub ok()
Dim I As Long, valeurB As String
I = 0
Do
  valeurB = ActiveSheet.Cells(3 + I, 3).Value
  If valeurB = "DEPOT" Or valeurB = "CORRECTION DE DEPOT" Then
    ActiveSheet.Cells(3 + I, 4).Value = "DEPOT"
  End If
  I = I + 1
Loop While valeurB <> ""
End Sub

Cdlmnt
0
Ju@nita Messages postés 135 Date d'inscription mardi 11 juin 2013 Statut Membre Dernière intervention 19 mars 2018
2 août 2017 à 19:05
yeah ! ça marche. Un gros merci et bonne fin de journée.
0