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...

Franc58

XLDnaute Occasionnel
Salut, il y a juste 2 lignes .offset à ajouter dans ton code:


VB:
    If C Is Nothing Then
        Cel.Resize(, 5).Copy WsC.Range("a" & LigneAjout)
        Cel.Offset(0, 8).Resize(, 3).Copy WsC.Range("i" & LigneAjout)
        LigneAjout = LigneAjout + 1
    Else
        Cel.Resize(, 5).Copy WsC.Range("a" & C.Row)
        Cel.Offset(0, 8).Resize(, 3).Copy WsC.Range("i" & C.Row)
    End If
 

eric72

XLDnaute Accro
Salut, il y a juste 2 lignes .offset à ajouter dans ton code:


VB:
    If C Is Nothing Then
        Cel.Resize(, 5).Copy WsC.Range("a" & LigneAjout)
        Cel.Offset(0, 8).Resize(, 3).Copy WsC.Range("i" & LigneAjout)
        LigneAjout = LigneAjout + 1
    Else
        Cel.Resize(, 5).Copy WsC.Range("a" & C.Row)
        Cel.Offset(0, 8).Resize(, 3).Copy WsC.Range("i" & C.Row)
    End If
Bonjour Franc58,

Pffff suis vraiment nul!!!
Merci beaucoup pour le coup de main
Bonne soirée et merci encore
 

eric72

XLDnaute Accro
Salut, il y a juste 2 lignes .offset à ajouter dans ton code:


VB:
    If C Is Nothing Then
        Cel.Resize(, 5).Copy WsC.Range("a" & LigneAjout)
        Cel.Offset(0, 8).Resize(, 3).Copy WsC.Range("i" & LigneAjout)
        LigneAjout = LigneAjout + 1
    Else
        Cel.Resize(, 5).Copy WsC.Range("a" & C.Row)
        Cel.Offset(0, 8).Resize(, 3).Copy WsC.Range("i" & C.Row)
    End If
Bonjour Franc58,
Petite question, quand j'exécute la macro, cela copie en dessous du Tableau structuré nommé Tableau1, comment remédier à cela.
Désolé et merci beaucoup
 

Pièces jointes

  • test (2).xlsm
    27.1 KB · Affichages: 3

Phil69970

XLDnaute Barbatruc
Bonjour à tous

@eric72

Quand tu fournis un fichier il faut qu'il soit représentatif

C'est quoi représentatif ?
- représentatif, même organisation des lignes et des colonnes, mêmes libellés, même nom des TS et même nom d'en-tête , mêmes noms de feuilles...
- anonymisé, pas de données personnelles réelles tels nom, n° sécu, adresse ... remplacé par Nom1, Nom2 etc ....
- simplifié, une quinzaine de lignes reproduisant l'ensemble des différents cas envisageables (Avec le résultat souhaité éventuellement)

Si cela fonctionne sur le fichier fourni et pas sur le vrai fichier c'est qu'il n'est en rien représentatif ou que tu n'as pas su transposer ce qui devrait être un simple copier coller du code.

TS = Tableaux Structuré

Et visiblement tu as 2 TS mais dans ton exemple tu as qu'un seul TS (Tableau1 dans la feuille Destination)

Quand il y a
un ou des TS on écrit le code pour un ou des TS et c'est pour cela qu'il faut un fichier représentatif c'est pas pour le fun mais bien pour écrire le bon code !!! ;)

Donc fournis un fichier représentatif ......

Bonne lecture
 

eric72

XLDnaute Accro
Bonjour à tous

@eric72

Quand tu fournis un fichier il faut qu'il soit représentatif

C'est quoi représentatif ?
- représentatif, même organisation des lignes et des colonnes, mêmes libellés, même nom des TS et même nom d'en-tête , mêmes noms de feuilles...
- anonymisé, pas de données personnelles réelles tels nom, n° sécu, adresse ... remplacé par Nom1, Nom2 etc ....
- simplifié, une quinzaine de lignes reproduisant l'ensemble des différents cas envisageables (Avec le résultat souhaité éventuellement)

Si cela fonctionne sur le fichier fourni et pas sur le vrai fichier c'est qu'il n'est en rien représentatif ou que tu n'as pas su transposer ce qui devrait être un simple copier coller du code.

TS = Tableaux Structuré

Et visiblement tu as 2 TS mais dans ton exemple tu as qu'un seul TS (Tableau1 dans la feuille Destination)

Quand il y a
un ou des TS on écrit le code pour un ou des TS et c'est pour cela qu'il faut un fichier représentatif c'est pas pour le fun mais bien pour écrire le bon code !!! ;)

Donc fournis un fichier représentatif ......

Bonne lecture
Bonjour Phil69970,
Merci pour ta réponse, je remets le fichier avec un TbOrigine et un TbDestination.
 

Pièces jointes

  • test (2) (1).xlsm
    29.8 KB · Affichages: 2

TooFatBoy

XLDnaute Barbatruc
Oups décidemment je ne fais que des boulettes, désolé et merci beaucoup pour la solution.
Merci également à Franc58 et Bonjour à Toofatboy
Et donc moi, pas "merci"...
Ouin ! C'est vraiment trop injuste ! 😭

Moi qui t'avais pourtant concocté un code magnifique, avec juste un tout petit défaut : il ne fonctionne pas...
D'ailleurs, si quelqu'un veut bien le débuguer, ça m'intéresserait de savoir pourquoi il plante après l'ajout d'une ligne au tableau de destination. 🤔
Si le Philou du 6 9 est dispo et OK pour jeter un oeil. ;)
 
Dernière édition:

eric72

XLDnaute Accro
RE

@eric72

Je te propose ce fichier

A noter :
Si tu corriges la faute d'orthographe il faudra corriger le code !!
Et donc moi, pas "merci"...
Ouin ! C'est vraiment trop injuste ! 😭

Moi qui t'avais pourtant concocté un code magnifique, avec juste un tout petit défaut : il ne fonctionne pas...
D'ailleurs, si quelqu'un veut bien le débuguer, ça m'intéresserait de savoir pourquoi il plante après l'ajout d'une ligne au tableau de destination. 🤔
Si le Philou du 6 9 est dispo et OK pour jeter un oeil. ;)
Désolé mais je viens de regarder il n'y pas ton code dans le fil, de plus comme je suis un boulet, j'ai oublié de demander que: si les Réf Chantier existent on actualise le ligne mais on n'en ajoute pas une, vous allez tous me hair :rolleyes:
 

Discussions similaires

Statistiques des forums

Discussions
312 207
Messages
2 086 228
Membres
103 160
dernier inscrit
Torto