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

Microsoft 365 Excel - Macro

Audrey R.

XLDnaute Nouveau
Bonjour,

Malgré mes efforts de recherche je ne trouve pas de solution.

J'ai une macro qui me permet d'aller chercher et afficher dans une cellule, les données contenues dans un autre fichier Excel.

En revanche, lorsque j'ajoute ou supprime une ligne dans le fichier initiale, l'actualisation de ma macro disposée dans le fichier secondaire ne fonctionne plus, car dû à l'ajout ou au retrait de la ligne la cellule change de numéro.

Est-ce qu'il existe un moyen de conserver le chiffre de ma cellule, malgré un ajout ou une suppression de lignes, dans le fichier initial ?

Merci
 

Audrey R.

XLDnaute Nouveau
Bonjour,

Voici fichiers.

Donc, j'aimerais chercher et afficher la ligne sous-total A (ligne 15), du fichier ''Classeur 2'' à la ligne A-Sous-total Projets 1 (ligne 3 - cases rouges), à l'aide d'une macro.

En revanche, si j'ajoute ou supprime une ligne dans le fichier initial (classeur 2), j'aimerais que la macro soit quand même fonctionnelle et affiche la donnée de la cellule.

Merci
 

Pièces jointes

  • Classeur2.xlsx
    12 KB · Affichages: 4
  • Axe budgétaire 2.xlsx
    11 KB · Affichages: 5

vgendron

XLDnaute Barbatruc
Hello

un test de macro à mettre dans le fichier "Axe budgétaire"
VB:
Sub test()
    Dim WbSource, WbDest As Workbook
   
    Set WbSource = Workbooks("Classeur2.xlsm") 'on définit le classeur source
    Set WbDest = ActiveWorkbook 'le classeur destination = classeur actif = celui d'ou est lancée la macro
   
    With WbSource.Sheets("Feuil1") 'dans la feuille 1 du classeur source
        LastLine = .Range("C" & .Rows.Count).End(xlUp).Row 'on cherche la dernère ligne NON vide de la colonne C
        Set LineToCopy = .Range("C" & LastLine).Resize(1, 3) 'on définit la zone à copier = colonnes C D E de la dernière ligne
    End With
    With WbDest.Sheets("Feuil1") 'dans la feuille 1 du classeur destination
        Set LineDest = Application.InputBox("cliquez sur la ligne destinataire", Type:=8) 'on demande à l'utilisateur de cliquer sur la ligne de destination
        NumLine = LineDest.Row 'on récupère le numéro de ligne
        .Range("C" & NumLine).Resize(1, 3) = LineToCopy.Value 'on colle directement les valeurs
    End With
End Sub

le code demande à quelle ligne il faut coller, parce que je ne vois pas comment on détermine ou il faut les mettre
 

Phil69970

XLDnaute Barbatruc
Re

@Audrey R.

Je te propose ce fichier

Pré -requis
1) Le fichier qui contient les données à copier peut s'appeler n'importe comment
2) Le fichier qui contient les données à copier dot être fermé
3) Tu cliques sur la macro "copie "
4) Quand la fenêtre s'ouvre c'est toi qui va choisir le fichier qui contient les données à copier
5) C'est fini les données sont copiées !!!
6) J'ai commenté tout le code

Merci de ton retour
 

Pièces jointes

  • copie fichier 1 vers fichier 2 V1.xlsm
    21.6 KB · Affichages: 1

Audrey R.

XLDnaute Nouveau

Bonjour,

Tout d'abord, merci énormément pour le temps accordé à mon problème.

Ensuite, le fichier Excel présenté plus haut est une simplification de ce que je voudrais faire réellement. Dans le fichier précédent, je copie et je colle une ligne, dans un autre fichier excel. Dans mon réel fichier, j'aimerais copier et coller plusieurs lignes, dans un autre fichier excel. Ainsi, le fait de toujours prendre la dernière ligne de la colonne A ne sera pas toujours applicable.

Je vais joindre mon vrai exemple

Donc, les données (données en jaune) du classeur2, doivent se copier et se coller, dans le classeur test. Par exemple, la ligne 5, du fichier classeur2 est collée dans les cellules D3 et E3, du fichier test. En revanche, la ligne 13, du fichier classeur 2 sera collée dans les cellules D21 et E21, du fichier test. En bref, je dois être en mesure de coller un élément du classeur2 n'importe ou dans le fichier test (voir macro dans fichier)
 

Pièces jointes

  • Classeur2.xlsm
    12.2 KB · Affichages: 2
  • Test.xlsm
    20.7 KB · Affichages: 2
  • 1719322588115.png
    93 KB · Affichages: 6

Phil69970

XLDnaute Barbatruc
@Audrey R.

Quel est le critère qui fait que tu copies la/les ligne(s) X, Y, ou Z plutôt que la/les ligne(s) A, B ou C ?
Idem c'est quoi le critère pour coller la/les ligne(s) X, Y, ou Z à la ligne 10 plutôt que la ligne 15 ou 20 ?

De même comment je devine les dates ?

Pourquoi je mets cette ligne



Ici


Et pourquoi je ne la mets pas ici par exemple



En attente de tes réponses !
 

Audrey R.

XLDnaute Nouveau

Bonjour,

Quel est le critère qui fait que tu copies la/les ligne(s) X, Y, ou Z plutôt que la/les ligne(s) A, B ou C ?
Idem c'est quoi le critère pour coller la/les ligne(s) X, Y, ou Z à la ligne 10 plutôt que la ligne 15 ou 20 ?


En fait, mon document initial comprend des chiffres et je veux effectuer un sommaire de ce document en conservant uniquement certaines données plus importantes, dans l'autre document. Donc, il n'y a pas de critères particuliers.

De même comment je devine les dates ?

Quelles dates ?

Pourquoi je mets cette ligne ?

Normallement, j'aurais plusieurs projets 108 et le total des valeurs serait collé à la ligne A-sous-total. Pour simplifier le tout, j'ai simplement ajouté un projet, par sous-total. Après, il n'y a pas vraiment de logique. Je sais tout simplement que les projets 108 vont à la ligne A-Sous-total.

Merci,
 

Phil69970

XLDnaute Barbatruc
@Audrey R.

Quelles dates ?


Celles ci !!

***********

Je sais tout simplement que les projets 108 vont à la ligne A-Sous-total.
Et moi comment je le sais ???

***************

Après, il n'y a pas vraiment de logique.
Donc le reste est au hasard !!!

**************

je veux effectuer un sommaire de ce document en conservant uniquement certaines données plus importantes, dans l'autre document. Donc, il n'y a pas de critères particuliers.
Donc on copie au hasard n’importe quoi vu que je ne connais pas ce qui est important pour toi ?

Sans plus de précision cela relève plus de la voyance qu'autre chose !!!
 

Audrey R.

XLDnaute Nouveau

Salut,

Les dates représentent uniquement le début de l'année financière et la fin de l'année financière. Elles n'ont aucun impact sur le reste. Pas besoin de prendre en considération ces colonnes.

Le problème étant justement que je ne vais jamais connaître le numéro des lignes qui seront copiées. Je sais tout simplement qu'elles devront toujours être collés au même endroit. Des projets vont être ajoutés ou supprimés annuellement, donc, les lignes de totales qui sont les lignes à copier ne seront jamais les mêmes dû au décalage. C'est pas du hasard, c'est juste que l'ajout ou le retrait d'une ligne va créer le changement de la sélection initiale.

J'ai mis les éléments importants en jaune.

Merci
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…