Microsoft 365 Déplacer la valeur d'une cellule dans une autre cellule en fonction d'une 3ème cellule

Did62223

XLDnaute Nouveau
Bonjour à tous,

Bonne et heureuse année à vous tous.
j'ai une question concernant un point de mon tableau.
Je cherche comment faire pour déplacer la valeur d'une cellule dans une autre cellule en fonction d'une autre cellule.

Pour être clair, d'une part je vous joins mon fichier et voici ce que je voudrais faire :
Je voudrais que lorsque un texte est renseigné dans la cellule K6, que la valeur de la cellule L6 se déplace dans la cellule J6 et ne plus figurer dans la L6.

Alors est ce qu'il y a une façon de faire avec une cellule ou du VBA je ne sais pas trop et j'avoue que je suis un peu perdu.
Si vous pouviez me donner un coup de main la dessus cela serait cool.

Ma feuille possède un Mdp à l'ouverture (que je n'arrive plus à supprimer) qui est : DM

Merci à tous
 

Pièces jointes

  • Récapitulatif 2022.xlsx
    43 KB · Affichages: 10

Did62223

XLDnaute Nouveau
Bonjour.
Une macro sur évènement change.
J'ai choisi la solution suivante pour
Si tu note oui en k6 l6 en j6
si tu note non en k6 j6 en l6
Merci beaucoup c'est très bien.

Juste un dernier point est ce qu'il st possible de prendre en compte n'importe quel texte plutôt que oui ou non. car en fait dans ma colonne K6 je vais mettre des numéro de facture qui comporte du texte et des chiffres.
En gros faudrait que lorsque que K n'est pas vide la valeur en I6 passe en j6. C'est peux être plus compliqué a faire.

Néanmoins merci pour votre aide précieuse
 

sousou

XLDnaute Barbatruc
C'est bien sur possible , la valeur passe de L6 en j6,
Mais si la cellule rechange une nouvelle fois on l6 passe en J6 et on a perdu la valeur?
Alors quid?
Si K6 est non vide, et J6 est vide peut-être?
Dans ce cas l'opération à lieu une fois et plus possible de ne rien faire ?
 

Did62223

XLDnaute Nouveau
C'est bien sur possible , la valeur passe de L6 en j6,
Mais si la cellule rechange une nouvelle fois on l6 passe en J6 et on a perdu la valeur?
Alors quid?
Si K6 est non vide, et J6 est vide peut-être?
Dans ce cas l'opération à lieu une fois et plus possible de ne rien faire ?
Le passage de la cellule L6 à J6 ne se fait qu'une seule fois car lorsque j'ai une nouvelle facture je fais une copie de la ligne précédente qui normalement doit avoir les même réglages.

La procédure est la suivante : je met un montant dans la cellule L6. Puis une fois la facture établie par note service, j'indique son numéro dans la cellule K6. Le montant passe dans la cellule J6 mais ne parait plus dans la cellule L6. dans le cas d'une nouvelle facturation, je copierais et collerais la ligne précédente.

j'espère avoir répondu a votre question

Question con : cela vet dire quoi QUID?
 

Did62223

XLDnaute Nouveau
Alors
comme ceci
nota:
familier (suivi de de)
Qu'en est-il (de…) ? ; que penser (de…) ?
Quid de ta décision ?
Merci pour la réponse du QUID.

Et encore un grand merci pour le tableau c'est tout a ait cela que je cherche.
peux-tu m'éclairer sur un point lorsque je copie a ligne 6 et que je l'insère en dessous (pour faire une facturation) il y a un message d'erreur qui apparait. Je voudrais que sur l'ensemble des cellule K4 à K9 cette macro soit réalisable, que je puisse ajouter des lignes (lorsque j'ai une nouvelle affaire) sans perdre la macro.

Et encore un grand merci pour tes réponses et ton aide
 

sousou

XLDnaute Barbatruc
modifie la macro comme ceci
Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address = "$K$6" Then
If Target <> "" And Target.Offset(0, -1) = "" Then

Range("j6").Value = Range("l6").Value
Range("L6").ClearContents
End If
End If

End Sub
 

Did62223

XLDnaute Nouveau
modifie la macro comme ceci
Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address = "$K$6" Then
If Target <> "" And Target.Offset(0, -1) = "" Then

Range("j6").Value = Range("l6").Value
Range("L6").ClearContents
End If
End If

End Sub
Je suis chiant je sais..... et je m'en excuse
Mais par conte lorsque je copie et insère une nouvelle ligne en dessous de la 6 (ou autre part en L30 par exemple), du coup le passage du montant en L7 vers la J7 lorsque K7 est non nul ne sais pas. c'est la même opération que pou la ligne 6.C'est peut être trop compliqué et demande trop de temps. Si c'est le cas dit le moi et j'arrêterais de t'embêter avec ca.
 

Pièces jointes

  • Copie de Récapitulatif 2022.xlsm
    50 KB · Affichages: 6

Did62223

XLDnaute Nouveau
Je suis chiant je sais..... et je m'en excuse
Mais par conte lorsque je copie et insère une nouvelle ligne en dessous de la 6 (ou autre part en L30 par exemple), du coup le passage du montant en L7 vers la J7 lorsque K7 est non nul ne sais pas. c'est la même opération que pou la ligne 6.C'est peut être trop compliqué et demande trop de temps. Si c'est le cas dit le moi et j'arrêterais de t'embêter avec ca.
En gros je voudrais que ta formule VBA soit effective pour l'ensemble de la colonne K en partant de la cellule K3 à K15 (suivant la tableau joint dans ma réponse précédente) et que je puisse copier et insérer des lignes au milieu de tableau et que cela fonctionne aussi. j'espère que cet compréhensible
 

sousou

XLDnaute Barbatruc
Comme ceci
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 11 And Target.Row > 2 And Target.Row < 15 Then
If Target <> "" And Target.Offset(0, -1) = "" Then

Cells(Target.Row, Target.Column - 1).Value = Cells(Target.Row, Target.Column + 1).Value
Cells(Target.Row, Target.Column + 1).ClearContents
End If
End If

End Sub
 

Did62223

XLDnaute Nouveau
Comme ceci
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 11 And Target.Row > 2 And Target.Row < 15 Then
If Target <> "" And Target.Offset(0, -1) = "" Then

Cells(Target.Row, Target.Column - 1).Value = Cells(Target.Row, Target.Column + 1).Value
Cells(Target.Row, Target.Column + 1).ClearContents
End If
End If

End Sub
Merci beaucoup cela fonctionne. Par contre si j'ajoute une ligne en dessous de K15 cela ne fonctionnera plus. Je vais remplacer le 15 par 300 et cela devrait normalement fonctionner.

je voulais juste que le code VBA ne s'effectue uniquement entre le trait noir entre L2/L3 et L24/L25 et que je puisse rajouter à ma guise des lignes pour des nouvelles affaires ou facturation entre ces 2 traits de façon à ce que le code VBA ne soit pas prix en compte dans le tableau situé à partir de la ligne 45.

En tout cas merci beaucoup pour vos réponses et votre aide précieuse. Vous faites du VBA tous les jours pour être aussi réactive sur le codage?
 

Did62223

XLDnaute Nouveau
Merci beaucoup cela fonctionne. Par contre si j'ajoute une ligne en dessous de K15 cela ne fonctionnera plus. Je vais remplacer le 15 par 300 et cela devrait normalement fonctionner.

je voulais juste que le code VBA ne s'effectue uniquement entre le trait noir entre L2/L3 et L24/L25 et que je puisse rajouter à ma guise des lignes pour des nouvelles affaires ou facturation entre ces 2 traits de façon à ce que le code VBA ne soit pas prix en compte dans le tableau situé à partir de la ligne 45.

En tout cas merci beaucoup pour vos réponses et votre aide précieuse. Vous faites du VBA tous les jours pour être aussi réactive sur le codage?
A ben non en fait si je remplace le 15 par 300 dans le code VBA, mon tableau en ligne 45 n'est pas affecté
 

Discussions similaires

Statistiques des forums

Discussions
312 094
Messages
2 085 242
Membres
102 833
dernier inscrit
Hassna