Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Recopie ligne précédente selon critère en VBA

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 !

sand13

XLDnaute Occasionnel
Bonjour à tous, je fais appel à vous car je suis bloqué sur un paramétrage VBA, je m'explique:

Je souhaiterai que lorsque la valeur d'une cellule dans mon tableau (en colonne A: selection de "OPERATION MIROIR") soit saisie, les cases de la colonne D à M de la ligne précédente se reportent automatiquement.

La contrainte ici est que ceci doit être effectué en VBA car je ne peux mettre de formule dans mes cellules étant donné que c'est un tableau de saisie et que j'aimerai automatiser cette pratique comme les autres enregistrées dans "Private Sub Worksheet_Change(ByVal Target As Range)"



Merci beaucoup à celles et ceux qui pourront m'aiguiller !

Si une solution est apportée à ma requête et si je puis me permettre, serait-il possible que si dans cette même colonne A la saisie comprend le mot "CLIENT", la ligne du dessous en colonne A s'inscrive automatiquement "OPERATION MIROIR" et donc enchaine avec ce que je décrivais plus haut ?



Bonne fin de journée
 

Pièces jointes

Dernière édition:
Re : Recopie ligne précédente selon critère en VBA

Bonjour sand13, le forum,

Copier/coller des cellules ou des valeurs ne présente aucune difficulté.

Sauf qu'il faut savoir quoi copier et les coller.

Ce n'est pas le cas de votre fichier.

Montrez sur un exemple ce que vous attendez exactement.

A+
 
Re : Recopie ligne précédente selon critère en VBA

Bonjour,

une piste..

If Target = "OPÉRATION MIROIR" Then
'recopie de la ligne précédente
ligne = Target.Row
Range(Cells(ligne - 1, 4), Cells(ligne - 1, 13)).Copy Cells(ligne, 4)
End If

sauf que si je colle ca à la fin de votre macro déjà existante.. il y a comme un petit effet récursif qui fait bugger..
 
Re : Recopie ligne précédente selon critère en VBA

Je pense que c'est parce que target est déjà employé sur les 2 macros précédentes non ? peut-on préciser le target de la colonne A ?

@Job75 voici un fichier je l'espère plus explicite
 

Pièces jointes

Re : Recopie ligne précédente selon critère en VBA

avec une "astuce" qui fonctionne.. mais suis pas sur que ce soit très catholique. d'autant que je ne sais pas ce que tu fais avec tes premieres macros...

l'astuce en question.. c'est le test : If Target.Column <> 1 Then Exit Sub

de plus. si tu t'amuses à sélectionner un rachat client ou emission client ou operation miroir parmis les lignes déjà remplies.. aie aie aie
 

Pièces jointes

Re : Recopie ligne précédente selon critère en VBA

j'ai marqué en vert ce que font les macros, une est pour prévenir la saisie d'un doublon dans la colonne B en demandant confirmation et la deuxieme empeche la saisie d'un doublon en colonne C
 
Re : Recopie ligne précédente selon critère en VBA

@vgenron: merci ça marche mais en effet pour le aie aie aie lol !

si je me permets, est ce que l'on peut executer la copie des cellules après avoir saisie la dernière ? donc en colonne M ?
parce que ça copie du blanc évidemment si je commence la saisie par la cellule A
 
Re : Recopie ligne précédente selon critère en VBA

Re,

Ajoutez ce code au début de votre macro :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect([A:A], Target) Is Nothing And Target.Count = 1 Then
  If Target = "OPÉRATION MIROIR" Then
    Target(1, 4).Resize(, 10) = Target(0, 4).Resize(, 10).Value
  ElseIf Target = "ÉMISSION TCN CLIENT" Then
    Target(2) = "OPÉRATION MIROIR"
  End If
 
 ' Prévenir de la saisie d'un doublon avec autorisation

ElseIf................
Fichier joint.

PS : il y a eu beaucoup de réponses à votre intervention sur ce fil :

https://www.excel-downloads.com/thr...s-manquants-dans-une-suite-excel-2007.161608/

On aimerait bien un retour de votre part.

A+
 

Pièces jointes

Re : Recopie ligne précédente selon critère en VBA

merci job75 votre macro fonctionne également, mais même question: est ce que l'on peut exécuter la copie des cellules après avoir saisie la dernière en colonne M ?
 
Re : Recopie ligne précédente selon critère en VBA

même question: est ce que l'on peut exécuter la copie des cellules après avoir saisie la dernière en colonne M ?

Ce n'est pas clair du tout.

- toutes les cellules de A à M doivent-elles avoir été renseignées ?

- que faut-il qu'il y ait en colonne A ?

- et puisque la macro copie la ligne précédente, le contenu des cellules de D à M va être écrasé, bizarre non ?

A+
 
Re : Recopie ligne précédente selon critère en VBA

Le soucis est que je commence une saisie de gauche à droite on est d'accord, ainsi lorsque je sélectionne EMISSION TCN CLIENT en colonne A, la macro copie la ligne (vierge de saisie puisque je commence par la colonne A..) et la colle dessous avec OPERATION MIROIR.

Donc je voulais savoir si il y'a une possibilité de freiner la macro et de faire en sorte qu'elle fonctionne quand ma saisie initiale est terminée
 
Dernière édition:
Re : Recopie ligne précédente selon critère en VBA

Re,

Bon c'est maintenant plus clair, alors écrire :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, [A:A]) Is Nothing And Target.Count = 1 Then
  If Target = "OPÉRATION MIROIR" Then _
    Target(1, 4).Resize(, 10) = Target(0, 4).Resize(, 10).Value

ElseIf Not Intersect(Target, [D:M]) Is Nothing And Target.Count = 1 Then
  If Application.CountA(Intersect(Target.EntireRow, [D:M])) = 10 And _
    Cells(Target.Row, 1) = "ÉMISSION TCN CLIENT" Then _
    Cells(Target.Row + 1, 1) = "OPÉRATION MIROIR"

 ' Prévenir de la saisie d'un doublon avec autorisation
 
 ElseIf.......................
Fichier (2).

A+
 

Pièces jointes

- 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

Discussions similaires

Réponses
8
Affichages
564
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…