macro : figer un code de facture sous condition

max 35

XLDnaute Nouveau
bonjours,

je souhaiterai figer le code dans la colonne C uniquement quand il est écrit "soldé" dans la colonne A
le but est de garder un n° de facture devant les ligne concernées car le code est une variable (B1).

ex:

figer la cellule C5 car A5 = soldé

en espérant avoir était clair.
merci d'avance pour votre aide

max
 

Pièces jointes

  • test1.xlsx
    17.2 KB · Affichages: 45
  • test1.xlsx
    17.2 KB · Affichages: 46
  • test1.xlsx
    17.2 KB · Affichages: 45

DoubleZero

XLDnaute Barbatruc
Re : macro : figer un code de facture sous condition

Bonjour, max 35, le Forum,

Peut-être avec ce code, placé dans le module de l'onglet :

Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("a3:a" & Range("a65536").End(xlUp).Row)) Is Nothing Then
If Target = "soldé" Then Target.Offset(, 2).Value = Target.Offset(, 2).Value
End If
End Sub

A bientôt :)
 

DoubleZero

XLDnaute Barbatruc
Re : macro : figer un code de facture sous condition

Re-bonjour,

Pour copier la macro sur le fichier de travail, il suffit de procéder ainsi :

attachment.php


Bon courage et à bientôt :)
 

Pièces jointes

  • Où placer le code.JPG
    Où placer le code.JPG
    25.6 KB · Affichages: 70
  • Où placer le code.JPG
    Où placer le code.JPG
    25.6 KB · Affichages: 87
  • Où placer le code.JPG
    Où placer le code.JPG
    25.6 KB · Affichages: 82

max 35

XLDnaute Nouveau
Re : macro : figer un code de facture sous condition

merci doublezero!!!

c'est bien ça!
par contre j'ai besoin d'adapter ce code à un fichier plus gros et je ne comprend pas à quoi correspond le 2
dans "Target.Offset(, 2).Value = Target.Offset(, 2).Value"

si se n'est pas trop demandé peux tu m'expliquer STP?
 

DoubleZero

XLDnaute Barbatruc
Re : macro : figer un code de facture sous condition

Re-bonjour,

...si se n'est pas trop demandé peux tu m'expliquer STP?

Très volontiers ! Voici la macro commentée...

VB:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
'début de condition
'à partir de a3, si la cellule n'est pas vide
If Not Intersect(Target, Range("a3:a" & Range("a65536").End(xlUp).Row)) Is Nothing Then
'si la valeur est "soldé", alors la cellule décalée de deux vers la droite,
'pour atteindre la colonne c, voit sa formule transformée en valeur
If Target = "soldé" Then Target.Offset(, 2).Value = Target.Offset(, 2).Value
'fin de condition
End If
'fin de la macro
End Sub

... et ne pas hésiter à revenir en cas de difficulté(s).

A bientôt :)
 

Discussions similaires

Statistiques des forums

Discussions
312 492
Messages
2 088 902
Membres
103 982
dernier inscrit
krakencolas