Menu

Instruction "Do" dans une macro (Excel 2010) [Résolu]

Ju@nita 135 Messages postés mardi 11 juin 2013Date d'inscription 19 mars 2018 Dernière intervention - 2 août 2017 à 18:26 - Dernière réponse : Ju@nita 135 Messages postés mardi 11 juin 2013Date d'inscription 19 mars 2018 Dernière intervention
- 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.


Afficher la suite 

Votre réponse

2 réponses

ccm81 8399 Messages postés lundi 18 octobre 2010Date d'inscription 16 mai 2018 Dernière intervention - 2 août 2017 à 18:58
0
Utile
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
Commenter la réponse de ccm81
Ju@nita 135 Messages postés mardi 11 juin 2013Date d'inscription 19 mars 2018 Dernière intervention - 2 août 2017 à 19:05
0
Utile
yeah ! ça marche. Un gros merci et bonne fin de journée.
Commenter la réponse de Ju@nita