Microsoft 365 copier coller Resize

eric72

XLDnaute Accro
Bonsoir,
Je cherche à copier des plages de la feuille ORIGINEà DESTINATION avec un test pour savoir si la Référence Devis existe, ça j'y parviens sauf que j'aimerais coller dans un 1er temps de la colonne A à E (j'y arrive aussi!!!) puis de la colonne I à K avec une solution type RESIZE mais je n'y parviens pas.

Merci beaucoup pour votre aide.
 

Pièces jointes

  • test.xlsm
    25.8 KB · Affichages: 8
Solution
Voici la macro qui a l'air de fonctionner. A tester...

VB:
Sub Copier_Valeurs()
' Modification/ajout des données du tableau source dans le tableau cible
Dim LigneSource As Long, LigneCible As Long
Dim MaValeur As String
Dim MaPlageDeRecherche As Range, MaCelluleTrouvee As Range

    Application.ScreenUpdating = False

    For LigneSource = 1 To Range("TbOrigine").ListObject.ListRows.Count

        MaValeur = Range("TbOrigine[Référence Devis]")(LigneSource).Value
        Set MaPlageDeRecherche = Range("TbDestination[Référence Devis]")
        Set MaCelluleTrouvee = MaPlageDeRecherche.Find(What:=MaValeur, LookIn:=xlValues, LookAt:=xlWhole)

        If MaCelluleTrouvee Is Nothing Then...

Phil69970

XLDnaute Barbatruc
@eric72

ui Phil, enfin presque, on écrase uniquement les colonne de Exemple:
Range("TbOrigine[[Référence Devis]:[Téléphone]]").Copy, celles qui correspondent à notre choix
Tu m'as perdu .....

Colonne et ligne sont 2 choses différentes !!!

En clair :
1) ==> si il y a 1 ligne avec la ref : ABC déjà dans la feuille destination on écrase et remplace la ligne ABC par la nouvelle ligne avec la Ref ABC

2) ==> si pas de ref EFG alors on copie la ligne dans la feuille destination

J’attends 2 réponses distinctes pour le point 1 et pour le point 2 et réponds juste !!!!
 

eric72

XLDnaute Accro
@eric72


Tu m'as perdu .....

Colonne et ligne sont 2 choses différentes !!!

En clair :
1) ==> si il y a 1 ligne avec la ref : ABC déjà dans la feuille destination on écrase et remplace la ligne ABC par la nouvelle ligne avec la Ref ABC

2) ==> si pas de ref EFG alors on copie la ligne dans la feuille destination

J’attends 2 réponses distinctes pour le point 1 et pour le point 2 et réponds juste !!!!
Réponse à la question 1: on remplace les données des colonnes copiées soit
VB:
Range("TbOrigine[[Référence Devis]:[Téléphone]]")
et
Code:
Range("TbOrigine[[Date Pose Annoncée]:[1er Acompte 40%]]")
pour la ligne de la réf ABC
Réponse à la question 2 : si pas de Ref alors on ajoute une ligne avec la nouvelle réf

C'est un peu comme avec un userform, bouton Ajouter, bouton Valider

J'espère être assez clair

Merci encore
 

TooFatBoy

XLDnaute Barbatruc
Mieux encore, quand tu mets fin suite au débogage tu relances et il enregistre la ligne, par contre quand il n'y a plus d'enregistrements il te crée des milliers de lignes vides au tableau
Ah ben oui, normal ! Au temps pour moi ! :(

Ca ne devrait plus le faire avec cette pj.
Mais ça plante toujours lors de la recherche d'une valeur n'existant pas dans le tableau cible, après avoir ajouté une ligne au tableau...
 

Pièces jointes

  • test (2) - (TFB v-02).xlsm
    34.2 KB · Affichages: 3
Dernière édition:

eric72

XLDnaute Accro
Ah ben oui, normal ! Au temps pour moi ! :(

Ca ne devrait plus le faire avec cette pj.
Mais ça plante toujours lors de la recherche d'une valeur n'existant pas dans le tableau cible, après avoir ajouté une ligne au tableau...
en effet c'est mieux il beug sur
VB:
        MonResultat = MaCible.Find(MaValeur, LookIn:=xlValues, lookat:=xlWhole).Row
je fais débogage puis stop à l'exécution puis je relance et ça repart autant de fois qu'il y a de lignes et il les enregistre
 

Discussions similaires

Statistiques des forums

Discussions
312 207
Messages
2 086 247
Membres
103 163
dernier inscrit
Pelaez