Macro copier/coller ligne selon valeur cellule

Bonsoir à tous

Ayant eu entière satisfaction de vos réponse sur ma précédente demande, je réitère.

Je chercher à créer une macro qui me permettrait de de copier les valeurs d'une ligne et de les remplacer dans un tableau situé sur un autre onglet selon une recherche de la valeur de la première colonne.

Petit exemple :

onglet 1

ligne 1 DURAND 1 JAAG 10 000,00 € 7,00% 9 345,79 €

Onglet 2

ligne 5 DURAND 1 JAAG 10 000,00 € 7,00% 9 345,79 €

Je souhaiterais copier cette ligne et l'insérer dans un tableau situé sur un autre onglet. Je souhaiterais que cette ligne remplace la ligne existante correspondant au client DURAND qui peut être sur une autre ligne soit par une recherche valeur ou une autre astuce. l'emplacement de la ligne ou se situe DURAND dans l'onglet 2 change en permanence

Ce que la macro ferais :

Copier la ligne 1

rechercher la ligne ou se situe DURAND dans l'onglet 2

Remplacer la ligne ou se trouve DURAND dans l'onglet 2 par la ligne DURAND dans l'onglet 1

Je sais pas si vous avez tout compris, ça à l'air simple mais je galère depuis un moment donc HELP Please !

Vous remerciant par avance.

J'ai un peu de dispo pour t'aider à avancer sur ton code, si tu veux bien poster ton fichier avec ce que tu as déjà fait.

Je sais pas si vous avez tout compris, ça à l'air simple mais je galère depuis un moment donc HELP Please !

Histoire que l'on te refile pas un truc tout fait que tu n'arriveras pas à debugger le jour où ça plantera ^^

Mon fichier fait plus de 6Mo donc difficile de l'envoyer.

Je connais un peu le VBA, il y a un sujet similaire ou on utilise le Sub copie()

Le code qui me manque est celui pour aller trouver la ligne ou se situe DURAND dans la feuille 2

Comment transformer un RECHERCHEVAL en code VBA?

Bonjour,

Un petit fichier test, avec qques lignes ds les deux onglets et le VBA que tu as déjà réalisé devrait pouvoir se poster sur le forum non ?

Pour aller chercher la bonne ligne, fait une boucle en comparant le nom de ton onglet 1. Tant qu'on ne trouve pas le nom et qu'on est pas dans le vide on continue.

Si on sort sur du vide = le nom n'existe pas dc on colle la ligne (préalablement copiée) à la fin.

Si on sort sur le nom = on écrase la ligne de l'onglet 2 par celle de l'onglet 1.

Bonne journée

Fichier Test :

Les cellules Oranges et Roses sont modifiables sur l'onglet Saisir vente

Le bouton copie valeur fait une recherche des valeurs au dessus et les arranges selon les différentes colonnes du fichier vente

Ce que je souhaiterais automatiser, c'est le copier/coller à la première ligne vide de l'onglet vente si la valeur de la colonne 1 n'existe pas (dans l'exemple ci-dessus DURAND) ou Copier/remplacer la ligne si la valeur DURAND existe

En espérant que cela pourra vous aidez... et par conséquent moi aussi


Le bouton COPIER VALEUR est enlevé car sinon cela ferais un fichier trop volumineux

la macro que j'ai fait pour ce bouton est :

Sub Copier_Valeurs()
'
' Copier_Valeurs Macro
'
    Sheets("saisir ventes").Select
'recopie une ligne propre, copie valeurs dans la ligne pour recopie dans ventes
'et selectionne les cellules à ccopier
    Range("A31:DS31").Select
    Selection.Copy
    Range("A29").Select
    ActiveSheet.Paste
    Range("A30:DS30").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("A29").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("A29:DS29").Select
End Sub

Je souhaiterais ajouter le copie colle ou remplace de la ligne 29 dans l'onglet vente

Merci

Bonjour

Si j'ai compris

Macro à associer à ton bouton "copie valeur"

Option Explicit

Sub Copier_Valeurs()
Dim Cel As Range
Dim Ligne As Long

  If Range("A29") = "" Then Exit Sub
  Application.ScreenUpdating = False
  With Sheets("Ventes")
    Set Cel = .Columns("A").Find(what:=Range("A29"), LookIn:=xlValues, lookat:=xlWhole)
    If Not Cel Is Nothing Then
      Ligne = Cel.Row
    Else
      Ligne = .Range("A" & Rows.Count).End(xlUp).Row + 1
    End If
    Range("A29:DS29").Copy
    .Range("A" & Ligne).PasteSpecial Paste:=xlValues
  End With
  Application.CutCopyMode = False
  Range("A1").Select
End Sub

Merci de vous occuper de mon soucis

Petites questions:

Qu'entendez vous par "Option explicit"

Pourriez vous intégrer votre code dans le code de la macro que j'ai fait pour mon bouton copier valeur svp?

Merci d'avance

Bonjour

Neodule a écrit :

Qu'entendez vous par "Option explicit"

Oblige à déclarer toutes les variables (mon avis : Permet d'éviter beaucoup d'erreur)

Neodule a écrit :

Pourriez vous intégrer votre code dans le code de la macro que j'ai fait pour mon bouton copier valeur svp?

Il ne faut pas intégrer ce code , il remplaces celui que tu avais fait

Neodule a écrit :

la macro que j'ai fait pour ce bouton est :

Tu as fournis un fichier sans macro

Je m'en suis sorti avec votre solution, cela fonctionne parfaitement

Merci vraiment beaucoup, cela faisait plusieurs mois que j'étais bloquer la dessus

Rechercher des sujets similaires à "macro copier coller ligne valeur"