Microsoft 365 copier coller Resize

  • Initiateur de la discussion Initiateur de la discussion eric72
  • Date de début Date de début

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 !

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

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

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

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:
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 🙄
 
- 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

Retour