Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
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 !
Dans ce classeur j'aimerais déplacer le montant se trouvant dans la colonne C à D, si le mot "Remboursé" se trouve dans la colonne B, mais avec une fonction SI: Si c'est possible bien sure
Voici le classeur
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("B:B")) Is Nothing And Target.Count = 1 Then
If UCase(Target) = "OUI" Then
Target.Offset(0, 2) = Target.Offset(0, 1)
Target.Offset(0, 1) = ""
End If
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Range
Set r = Intersect(Target, [B:B], Me.UsedRange)
If Not r Is Nothing Then
For Each r In r 'si effacements ou entrées multiples (copier-coller)
If r = "Remboursé" And r(1, 2) <> "" Then _
r(1, 3) = r(1, 2): r(1, 2) = ""
Next
End If
End Sub
Ou cela :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Range
Set r = Intersect(Target, [B:B], Me.UsedRange)
If Not r Is Nothing Then
For Each r In r 'si effacements ou entrées multiples (copier-coller)
If r(1, 2) <> "" Then
If r = "Remboursé" Then
r(1, 3) = r(1, 2): r(1, 2) = ""
Else
r(1, 3) = 0 'r = ""
End If
End If
Next
End If
End Sub
Sur un grand tableau, si l'on fait un copier-coller de la colonne B sur elle-même, la 2ème macro du post #3 peut prendre du temps.
Avec un tableau VBA c'est plus rapide :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim P As Range, t, i&
Set P = Range("A1:D1", Me.UsedRange)
t = P.Formula 'matrice, plus rapide
For i = 1 To UBound(t)
If t(i, 3) <> "" Then
If t(i, 2) = "Remboursé" Then
t(i, 4) = t(i, 3): t(i, 3) = ""
Else
t(i, 4) = 0 't(i, 4) = ""
End If
End If
Next
Application.EnableEvents = False
P = t
Application.EnableEvents = True
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Range
Set r = Intersect(Target, [B:B], Me.UsedRange)
If Not r Is Nothing Then
For Each r In r 'si effacements ou entrées multiples (copier-coller)
If r(1, 2) <> "" Then
If r = "Remboursé" Then
r(1, 3) = r(1, 2): r(1, 2) = ""
Else
r(1, 3) = 0 'r = ""
End If
End If
Next
End If
End Sub
J'aimerais juste savoir si possible, si je reviens en arrière,
c'est à dire je change le mot "Remboursé" par un autre mot "oui" "non" "En suspend" ou encore d'autres,
alors il faudrait que la valeur qui à passée dans la colonne "D" revient dans la colonne "C" et affiche un "0"
Idéalement, si on pourrais créer cette situation selon mes notes sur la feuille 1
Mais comme je suis nul en VBA, pour moi, c'est pas réalisable
Merci A+++++
Re, Job75
Je pense être clair comme ceci, et excuse pour mon erreur
1. Si le mot en colonne B est remboursé, le montant colonne C passe en colonne D
2. Si le mot en colonne B est En attente, il reste en colonne C
3. Si le mot en colonne B est payé, il passe en colonne E
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Range
Set r = Intersect(Target, [B:B], Me.UsedRange)
If Not r Is Nothing Then
For Each r In r 'si effacements ou entrées multiples (copier-coller)
If r(1, 2) <> "" Then
If LCase(r) = "remboursé" Then
r(1, 3) = r(1, 2): r(1, 2) = ""
ElseIf LCase(r) = "payé" Then
r(1, 4) = r(1, 2): r(1, 2) = ""
Else
r(1, 3) = 0 'r = ""
End If
End If
Next
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Range
Set r = Intersect(Target, [B:B], Me.UsedRange)
If Not r Is Nothing Then
For Each r In r 'si effacements ou entrées multiples (copier-coller)
If r(1, 2) <> "" Then
If LCase(r) = "remboursé" Then
r(1, 3) = r(1, 2): r(1, 2) = ""
ElseIf LCase(r) = "payé" Then
r(1, 4) = r(1, 2): r(1, 2) = ""
Else
r(1, 3) = 0 'r = ""
End If
End If
Next
End If
End Sub
Ho lalala, super le code, alors vraiment c'est très gentil d'avoir pris un peux de temps pour mon problème de code,
Je vous remercie vivement, Job75, et grosselien, et vous souhaite une bonne continuation dans ce que vous faites.
MERCI
- 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