Dupliquer en insérant des lignes

Résolu/Fermé
-JeuneMaman- Messages postés 470 Date d'inscription vendredi 15 mai 2009 Statut Membre Dernière intervention 7 septembre 2012 - Modifié par choubaka le 26/01/2012 à 09:11
-JeuneMaman- Messages postés 470 Date d'inscription vendredi 15 mai 2009 Statut Membre Dernière intervention 7 septembre 2012 - 6 août 2012 à 13:58
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
A voir également:

4 réponses

Utilisateur anonyme
29 janv. 2012 à 21:41
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
0
-JeuneMaman- Messages postés 470 Date d'inscription vendredi 15 mai 2009 Statut Membre Dernière intervention 7 septembre 2012 2
12 févr. 2012 à 17:03
Bonjour,

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
0
Aliboron Martin Messages postés 3440 Date d'inscription samedi 1 janvier 2011 Statut Contributeur Dernière intervention 18 avril 2024 927
4 févr. 2012 à 14:42
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.

0
-JeuneMaman- Messages postés 470 Date d'inscription vendredi 15 mai 2009 Statut Membre Dernière intervention 7 septembre 2012 2
12 févr. 2012 à 17:14
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
0
Aliboron Martin Messages postés 3440 Date d'inscription samedi 1 janvier 2011 Statut Contributeur Dernière intervention 18 avril 2024 927
12 févr. 2012 à 17:17
Quelle macro ? on peut avoir un lien ?
0
-JeuneMaman- Messages postés 470 Date d'inscription vendredi 15 mai 2009 Statut Membre Dernière intervention 7 septembre 2012 2
12 févr. 2012 à 17:42
Sub MacroContractuel()

Sheets("Coordonnees").Range("A9:ZZ" & Sheets("Coordonnees").[A65000].End(xlUp).Row).AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range("B9"), Unique:=False

End Sub
0
Utilisateur anonyme
12 févr. 2012 à 17:24
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 ;-))
0
-JeuneMaman- Messages postés 470 Date d'inscription vendredi 15 mai 2009 Statut Membre Dernière intervention 7 septembre 2012 2
12 févr. 2012 à 17:46
Merci Sanspseudo et merci Bernard.
Et désolée d'avoir atterrie sur le forum Mac.

Bernard ... à toi :-)))
0
Aliboron Martin Messages postés 3440 Date d'inscription samedi 1 janvier 2011 Statut Contributeur Dernière intervention 18 avril 2024 927
12 févr. 2012 à 18:46
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. :

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

0
Aliboron Martin Messages postés 3440 Date d'inscription samedi 1 janvier 2011 Statut Contributeur Dernière intervention 18 avril 2024 927
12 févr. 2012 à 22:43
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.
0
Aliboron Martin Messages postés 3440 Date d'inscription samedi 1 janvier 2011 Statut Contributeur Dernière intervention 18 avril 2024 927
21 févr. 2012 à 22:28
Bon, ça marche ou ça ne marche pas, alors, pour finir ?
0
-JeuneMaman- Messages postés 470 Date d'inscription vendredi 15 mai 2009 Statut Membre Dernière intervention 7 septembre 2012 2
26 févr. 2012 à 16:52
coucou,

désolée de ne pas avoir pris le temps de répondre, des problèmes de santé assez importants m'ont cloués au lit pendant 15 jours, je me remets doucement. Je teste le code dès que j'ai un instant et je te redis ca.

merci encore ;-))
0
-JeuneMaman- Messages postés 470 Date d'inscription vendredi 15 mai 2009 Statut Membre Dernière intervention 7 septembre 2012 2
6 août 2012 à 13:58
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
0