Dupliquer en insérant des lignes
Résolu/Fermé
-JeuneMaman-
Messages postés
471
Date d'inscription
Statut
Membre
Dernière intervention
-
-JeuneMaman- Messages postés 471 Date d'inscription Statut Membre Dernière intervention -
-JeuneMaman- Messages postés 471 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
J'ai un fichier excel avec plusieurs onglets. Dans le premier onglet, j'ai plusieurs colonnes et je souhaiterai pouvoir en dupliquer automatiquement certaines sur d'autres onglets mais pas toutes. Ex : sur le deuxième onglet je veux dupliquer la colonne A et C, troisième onglet A et B, etc. A chaque onglet j'ajoute en plus d'autres colonnes concernant diverses informations. Le fichier est relatif à la gestion de salariés.
Je pensais avoir trouvé la solution avec une macro « copytorange » mais dans la pratique je n'arrive pas au résultat escompté.
Mon problème est le suivant. La macro duplique bien les données des colonnes demandées, y compris lorsque je fais une insertion. Le problème c'est que cela ne fait la copie et surtout l'insertion qu'au niveau de la colonne en question et non au niveau de la ligne entière ce qui fait que cela me décale mes données.
"Lien édité par modérateur: Virus détécté..."
Quelqu'un pourrait-il me trouver une solution pour dupliquer certaines colonnes d'un onglet en gérant correctement les insertions de lignes.
En espérant avoir été suffisamment clair. J'utilise excel 2007 et je n'y connait rien en programmation mais j'essaie de comprendre c'est déjà ca ;-)
Merci à celui ou celle qui me sortira de cette impass ou me trouvera au moins un début de piste.
Jeune maman
Maman de Nathan et Pauline
J'ai un fichier excel avec plusieurs onglets. Dans le premier onglet, j'ai plusieurs colonnes et je souhaiterai pouvoir en dupliquer automatiquement certaines sur d'autres onglets mais pas toutes. Ex : sur le deuxième onglet je veux dupliquer la colonne A et C, troisième onglet A et B, etc. A chaque onglet j'ajoute en plus d'autres colonnes concernant diverses informations. Le fichier est relatif à la gestion de salariés.
Je pensais avoir trouvé la solution avec une macro « copytorange » mais dans la pratique je n'arrive pas au résultat escompté.
Mon problème est le suivant. La macro duplique bien les données des colonnes demandées, y compris lorsque je fais une insertion. Le problème c'est que cela ne fait la copie et surtout l'insertion qu'au niveau de la colonne en question et non au niveau de la ligne entière ce qui fait que cela me décale mes données.
"Lien édité par modérateur: Virus détécté..."
Quelqu'un pourrait-il me trouver une solution pour dupliquer certaines colonnes d'un onglet en gérant correctement les insertions de lignes.
En espérant avoir été suffisamment clair. J'utilise excel 2007 et je n'y connait rien en programmation mais j'essaie de comprendre c'est déjà ca ;-)
Merci à celui ou celle qui me sortira de cette impass ou me trouvera au moins un début de piste.
Jeune maman
Maman de Nathan et Pauline
A voir également:
- Dupliquer en insérant des lignes
- Dupliquer ecran - Guide
- Partager des photos en ligne - Guide
- Dupliquer whatsapp - Guide
- Mètre en ligne - Guide
- Comment insérer des points de suite sur word - Guide
4 réponses
Bonjour,
je vais vous envoyer notre spécialiste esExcel ... J'ai nommé Aliboron Martin..
Je vais lui envoyer un message privé, il viendra vous répondre ..
Entre temps, j'avais vu vos copies d'écran qui ont été supprimées par un modérateur.
Si j'ai bien compris votre souhait est en gros d'insérer une ligne dans un tableau, et que cette insertion provoque la même insertion de ligne dans un autre tableau, avec des contenus de colonnes différents en face du nom ajouté en début de ligne ..
Je n'ai plus Excle pour tester, donc je vous envoi Aliboron Martin, patientez un peu..
Cordialement
je vais vous envoyer notre spécialiste esExcel ... J'ai nommé Aliboron Martin..
Je vais lui envoyer un message privé, il viendra vous répondre ..
Entre temps, j'avais vu vos copies d'écran qui ont été supprimées par un modérateur.
Si j'ai bien compris votre souhait est en gros d'insérer une ligne dans un tableau, et que cette insertion provoque la même insertion de ligne dans un autre tableau, avec des contenus de colonnes différents en face du nom ajouté en début de ligne ..
Je n'ai plus Excle pour tester, donc je vous envoi Aliboron Martin, patientez un peu..
Cordialement
Désolé d'arriver si tard sur ce fil, d'autant plus que je n'ai pas bien compris exactement quel était le contexte. Peut-être une réponse pertinente a-t-elle déjà été apportée (d'autant plus que ce fil s'était égaré sur le forum Mac OS X, semble-t-il).
Si j'ai bien compris il s'agit de dupliquer des colonnes dans les onglets successifs d'un classeur Excel et d'y insérer plus ou moins automatiquement des lignes.
Ce serait bien de préciser un peu tout ça, et aussi de donner un lien vers la macro déjà utilisée, qu'on peut éventuellement modifier si elle convient déjà plus ou moins.
Si j'ai bien compris il s'agit de dupliquer des colonnes dans les onglets successifs d'un classeur Excel et d'y insérer plus ou moins automatiquement des lignes.
Ce serait bien de préciser un peu tout ça, et aussi de donner un lien vers la macro déjà utilisée, qu'on peut éventuellement modifier si elle convient déjà plus ou moins.
Bonsoir,
Et non, aucune réponse pertinente pour mon problème ;'(
Le principe étant un fichier excel servant de base de données collaborateur. Les informations sont regroupées par onglets : coordonnées, visite médicale, info contrat, etc. Bien entendu dans chaque onglet on retrouve inévitablement le nom et prénom de chaque collaborateur, plus d'autres informations spécifiques à chaque onglet voire parfois une ou deux autres informations du premier onglet. Le but est que lorsque l'on saisi un nouveau collab, la mise à jour se fasse également sur les autres onglets, à savoir avec une insertion de ligne si possible au même endroit que cela a été fait à l'onglet 1. Malheureusement, la seule macro que j'ai trouvée me fait une copie de la premier colonne sans décaler les lignes ce qui mélange toutes les informations. Ne parlons pas de réussir à récupérer la date de naissance pour l'onglet 3. En même temps, je suis nulle en programmation. Ceci explique cela.
Je ne sais pas si mes explications sont claires, mais la solution me ferait gagner du temps ;-)
Merci encore pour le temps que vous m'accordez.
Bonne soirée
Et non, aucune réponse pertinente pour mon problème ;'(
Le principe étant un fichier excel servant de base de données collaborateur. Les informations sont regroupées par onglets : coordonnées, visite médicale, info contrat, etc. Bien entendu dans chaque onglet on retrouve inévitablement le nom et prénom de chaque collaborateur, plus d'autres informations spécifiques à chaque onglet voire parfois une ou deux autres informations du premier onglet. Le but est que lorsque l'on saisi un nouveau collab, la mise à jour se fasse également sur les autres onglets, à savoir avec une insertion de ligne si possible au même endroit que cela a été fait à l'onglet 1. Malheureusement, la seule macro que j'ai trouvée me fait une copie de la premier colonne sans décaler les lignes ce qui mélange toutes les informations. Ne parlons pas de réussir à récupérer la date de naissance pour l'onglet 3. En même temps, je suis nulle en programmation. Ceci explique cela.
Je ne sais pas si mes explications sont claires, mais la solution me ferait gagner du temps ;-)
Merci encore pour le temps que vous m'accordez.
Bonne soirée
Bonjour,
A l'attention de Bernard, j'ai reconstitué de mémoire une synthèse de la demande. J'ai fais ça sous Numbers, mais je pense que la demande est claire pour Excel :
http://screencast.com/t/so3O3rOW
Bernard... à toi ;-))
A l'attention de Bernard, j'ai reconstitué de mémoire une synthèse de la demande. J'ai fais ça sous Numbers, mais je pense que la demande est claire pour Excel :
http://screencast.com/t/so3O3rOW
Bernard... à toi ;-))
OK, avec tout ça, je crois que je vois ce qui est attendu.
Vite fait, voilà ce que je propose sur ces bases (les noms de feuilles sont évidemment à adapter, j'ai cru comprendre que c'était "Coordonnees" plutôt que "Adresses", etc. :
Cette macro est à coller dans la feuille de code "ThisWorkbook" et devrait permettre l'exécution automatique lorsqu'on passe de la feuille "Coordonnees" à une autre (que ce soit la feuille "Revenus" ou pas).
Si ça ne convient pas, merci de préciser ce qui cloche...
Vite fait, voilà ce que je propose sur ces bases (les noms de feuilles sont évidemment à adapter, j'ai cru comprendre que c'était "Coordonnees" plutôt que "Adresses", etc. :
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object) Application.ScreenUpdating = False If Sh.Name <> "Coordonnees" Then Exit Sub DerLigneCoordonnees = Sheets("Coordonnees").Range("A1048576").End(xlUp).Row DerLigneRevenus = Sheets("Revenus").Range("A1048576").End(xlUp).Row If DerLigneCoordonnees > DerLigneRevenus Then With Sheets("Coordonnees") .Range("A" & DerLigneRevenus + 1 & ":A" & DerLigneAdresses).Copy .Paste Destination:=Worksheets("Revenus").Range("A" & DerLigneRevenus + 1) End With End If Sheets("Coordonnees").Range("A2").Sort _ Key1:=Worksheets("Coordonnees").Columns("A"), Header:=xlYes Sheets("Revenus").Range("A2").Sort _ Key1:=Worksheets("Revenus").Columns("A"), Header:=xlYes Application.ScreenUpdating = True End Sub
Cette macro est à coller dans la feuille de code "ThisWorkbook" et devrait permettre l'exécution automatique lorsqu'on passe de la feuille "Coordonnees" à une autre (que ce soit la feuille "Revenus" ou pas).
Si ça ne convient pas, merci de préciser ce qui cloche...
Euh, j'ai oublié un détail important : pour que ça marche, il faut ajouter le(s) nouveau(x) collaborateur(s) au bas de la liste. Pas en insertion au milieu (ce qui rendrait bien plus compliquée la détection) mais en bas de la liste. Comme ça ma macro les identifie, les ajoute dans l'autre feuille puis trie le tout pour que tout soit bien rangé.
Désolé pour cet oubli, j'espère que c'est plus clair.
Désolé pour cet oubli, j'espère que c'est plus clair.
Bien que tardif, je tenais à vous faire un retour et vous remercier de votre aide. Vous avez bien répondu à ma demande malheureusement la problématique étant trop complexe j'ai dû abandonné le projet. Je ne peux obliger l'insertion des lignes à la fin car nous rangeons (et donc insérons) les collaborateurs par ordre alphabétique. De plus, n'étant pas la seule à utiliser le fichier, il faut quelque chose de sûre en plus d'être simple (mes collègues maitrisant excel encore moins que moi). Nous avons donc opté pour une méthode un peu plus fastidieuse mais ne générant pas d'erreur à cause d'une mauvaise manip :-)
Bonne journée
Bonne journée
Je vous remercie pour votre aide. Vous avez parfaitement cerné le problème. Le principe étant de ne pas avoir à retaper 10 fois le nom du collaborateur parce qu'il y a 10 onglets par exemple.
J'ai hâte d'avoir la solution :-).
Encore merci et désolée que le lien pourtant sans virus ait été supprimé. Eventuellement je peux l'envoyer par MP si vous ou votre expert :-) le souhaite.
Bonne soirée