Macro: copier coller des lignes d'un tableau
Fermé
sousour1987
Messages postés
27
Date d'inscription
dimanche 18 octobre 2015
Statut
Membre
Dernière intervention
28 septembre 2018
-
18 oct. 2015 à 10:48
via55 Messages postés 14402 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 18 avril 2024 - 29 nov. 2015 à 18:02
via55 Messages postés 14402 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 18 avril 2024 - 29 nov. 2015 à 18:02
A voir également:
- Impossible de coller les données de votre organisation ici.
- Macro word - Guide
- Macro logiciel - Télécharger - Organisation
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Macro recorder - Télécharger - Confidentialité
- Macro souris ✓ - Forum Windows
4 réponses
via55
Messages postés
14402
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
18 avril 2024
2 702
18 oct. 2015 à 15:31
18 oct. 2015 à 15:31
Bonjour
Pour pouvoir t'aider il faut connaitre plus précisément la structure de ton fichier
Tes 5 tableaux sont ils sur la même feuille ? et si oui les uns sur les autres ou côte à côte ? ou sont ils sur 5 feuilles différentes ?
Tu veux dans le 6eme tableau recopier les lignes des 5 autres les unes à la suite des autres ? etc
Le mieux est de joindre déjà un exemple de ton fichier (Pas besoin que les 5 tableaux aient beaucoup de lignes) avec un exemple du 6eme tableau que tu souhaite obtenir
Poster cet exemple sur cjoint.com, faire créer un lien , le copier et revenir l'indiquer ici
Cdlmnt
Via
Pour pouvoir t'aider il faut connaitre plus précisément la structure de ton fichier
Tes 5 tableaux sont ils sur la même feuille ? et si oui les uns sur les autres ou côte à côte ? ou sont ils sur 5 feuilles différentes ?
Tu veux dans le 6eme tableau recopier les lignes des 5 autres les unes à la suite des autres ? etc
Le mieux est de joindre déjà un exemple de ton fichier (Pas besoin que les 5 tableaux aient beaucoup de lignes) avec un exemple du 6eme tableau que tu souhaite obtenir
Poster cet exemple sur cjoint.com, faire créer un lien , le copier et revenir l'indiquer ici
Cdlmnt
Via
via55
Messages postés
14402
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
18 avril 2024
2 702
Modifié par via55 le 18/10/2015 à 20:26
Modifié par via55 le 18/10/2015 à 20:26
Re
Les feuilles suivi étant obligatoirement les 5 premières du classeur et la feuille Recap la 6eme, le bouton sur la feuille Recap efface Recap sur 2000 lignes et y transfère les données des 5 feuilles (ALT + F11 pour voir le code)
http://www.cjoint.com/c/EJssxJjaC1l
Cdlmnt
Via
"L'imagination est plus importante que le savoir." A. Einstein
Les feuilles suivi étant obligatoirement les 5 premières du classeur et la feuille Recap la 6eme, le bouton sur la feuille Recap efface Recap sur 2000 lignes et y transfère les données des 5 feuilles (ALT + F11 pour voir le code)
http://www.cjoint.com/c/EJssxJjaC1l
Cdlmnt
Via
"L'imagination est plus importante que le savoir." A. Einstein
sousour1987
Messages postés
27
Date d'inscription
dimanche 18 octobre 2015
Statut
Membre
Dernière intervention
28 septembre 2018
18 oct. 2015 à 21:12
18 oct. 2015 à 21:12
ok, c'est exactement ce que je voulais, sauf que les tableaux ne sont pas sur le même fichier, ce sont en fait 6 fichiers différents (1 par tableau).
via55
Messages postés
14402
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
18 avril 2024
2 702
>
sousour1987
Messages postés
27
Date d'inscription
dimanche 18 octobre 2015
Statut
Membre
Dernière intervention
28 septembre 2018
19 oct. 2015 à 00:03
19 oct. 2015 à 00:03
Re
Rien ne t'empêche de copier-coller les 5 feuilles de tes 5 fichiers dans les 5 premières feuilles du fichier Recap (Clic droit sur l'onglet de la feuille du 1er classeur - Déplacer ou Copier - Dans le classeur : choisir le classeur Récap Avant la feuille : la feuille avec le tableau récapitilatif - Ne pas oublier de cocher la case Créer une copie)
Sinon
il faut que tous les classeurs soient ouverts (c'est plus complexe de lire dans des classeurs fermés) et modifier la macro ainsi :
En début de macro :
Dimensionner un tableau de 5 puis attribuer à chaque item du tableau le nom du classeur correspondant suivi de son extension :
Dans le corps de la macro modifier les lignes pour indiquer le bon classeur avant le choix de feuille
Cdlmnt
Via
Rien ne t'empêche de copier-coller les 5 feuilles de tes 5 fichiers dans les 5 premières feuilles du fichier Recap (Clic droit sur l'onglet de la feuille du 1er classeur - Déplacer ou Copier - Dans le classeur : choisir le classeur Récap Avant la feuille : la feuille avec le tableau récapitilatif - Ne pas oublier de cocher la case Créer une copie)
Sinon
il faut que tous les classeurs soient ouverts (c'est plus complexe de lire dans des classeurs fermés) et modifier la macro ainsi :
En début de macro :
Dimensionner un tableau de 5 puis attribuer à chaque item du tableau le nom du classeur correspondant suivi de son extension :
Dim classeur(5) classeur(1) = "AAA.xslx" ' Remplacer AAA par le nom du classeur classeur(2) = "BBB.xslx" 'etc...
Dans le corps de la macro modifier les lignes pour indiquer le bon classeur avant le choix de feuille
ligneS = Workbooks(classeur(n)).Sheets(n).Columns(2).Find("*", , , , xlByColumns, xlPrevious).Row
'dernière ligne remplie en colonne 2 de la 1ere feuille du classeur n ligneS = Workbooks(classeur(n)).Sheets(1).Columns(2).Find("*", , , , xlByColumns, xlPrevious).Row ' 'MODIFIER LE 1 SI CE N'EST PAS LA 1° FEUILLE DU CLASSEUR SOURCE ' si derniere ligne remplie est sup à ligne 6 If ligneS > 6 Then 'Boucle sur les lignes de la feuille suivi de la 7° à la dernière For lg = 7 To ligneS ' incremente de 1 la ligne de Récap ld = ld + 1 'copie les données de A à X Workbooks(classeur(n)).activate Sheets(1).Select Range("A" & lg & ":X" & lg).Select Selection.Copy ' colle les données valeurs uniquement Workbooks("mettre ici entre "" ""le nom du classeur récap avec son extension").Activate Sheets(1).Select 'MODIFIER LE 1 SI CE N'EST PAS LA 1° FEUILLE DU CLASSEUR RECAP Range("A" & ld).Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False ' copie les données de la colonne AA Workbooks("mettre ici entre "" ""le nom du classeur récap avec son extension").Sheets(1).Range("AA" & ld) = Workbooks(classeur(n)).Sheets(1).Range("AA" & lg) ''MODIFIER LES 1 SI NECESSAIRE Next lg End If
Cdlmnt
Via
sousour1987
Messages postés
27
Date d'inscription
dimanche 18 octobre 2015
Statut
Membre
Dernière intervention
28 septembre 2018
19 oct. 2015 à 09:28
19 oct. 2015 à 09:28
Merci,
j'ai fait les modifs et ça ne fonctionne toujours pas....
je ne trouve pas l'erreur:
https://www.cjoint.com/c/EJthBXwNjIG
En tout cas merci, sans vous 2 je n'en serais encore pas là!
j'ai fait les modifs et ça ne fonctionne toujours pas....
je ne trouve pas l'erreur:
https://www.cjoint.com/c/EJthBXwNjIG
En tout cas merci, sans vous 2 je n'en serais encore pas là!
via55
Messages postés
14402
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
18 avril 2024
2 702
>
sousour1987
Messages postés
27
Date d'inscription
dimanche 18 octobre 2015
Statut
Membre
Dernière intervention
28 septembre 2018
19 oct. 2015 à 14:21
19 oct. 2015 à 14:21
Bonjour
Plusieurs erreurs :
- le tableau n'était pas dimensionné et les items mis avant la macro au lieu d'être en début de macro
- les noms des classeurs dans les items ne correspondaient pas au réels (un espace après les --- alors qu'il n'y en pas pour les classeurs sources, extension xlsx au lieu de xlsm)
- le nom du classeur manquait pour la copie de la colonne AA
Version rectifiée qui fonctionne :
http://www.cjoint.com/c/EJtmp2kp0ml
Cdlmnt
Via
Plusieurs erreurs :
- le tableau n'était pas dimensionné et les items mis avant la macro au lieu d'être en début de macro
- les noms des classeurs dans les items ne correspondaient pas au réels (un espace après les --- alors qu'il n'y en pas pour les classeurs sources, extension xlsx au lieu de xlsm)
- le nom du classeur manquait pour la copie de la colonne AA
Version rectifiée qui fonctionne :
http://www.cjoint.com/c/EJtmp2kp0ml
Cdlmnt
Via
sousour1987
Messages postés
27
Date d'inscription
dimanche 18 octobre 2015
Statut
Membre
Dernière intervention
28 septembre 2018
28 nov. 2015 à 11:25
28 nov. 2015 à 11:25
Ah ok je vois mon erreur, dans le doc que j'ai envoyé hier j'ai bien totu renommé, remplacé n to 9 par n to 7, mais Pliotage SMQ je l'ai appelé classeur (8).
Merci
Merci
http://www.cjoint.com/c/EKDnJVmyaqj
je suis désolé mais j'ai tout changé et cela ne fonctionne toujours pas...
je suis désolé mais j'ai tout changé et cela ne fonctionne toujours pas...
via55
Messages postés
14402
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
18 avril 2024
2 702
29 nov. 2015 à 18:02
29 nov. 2015 à 18:02
Re,
Ligne de la macro : classeur(1) = "Pilotage Processus ACH - MAI - MTH.xlsx"
Nom du classeur : Pilotage Processus ACH - MTH - MAI.xlsx
Ca ne peut évidemment pas fonctionner !
Ligne de la macro : classeur(1) = "Pilotage Processus ACH - MAI - MTH.xlsx"
Nom du classeur : Pilotage Processus ACH - MTH - MAI.xlsx
Ca ne peut évidemment pas fonctionner !
18 oct. 2015 à 16:03
merci pour votre réponse.
voici le lien où se trouve le tableau:
https://www.cjoint.com/c/EJsn7LkY2gj
En fait à ce jour le document est vierge.Il y aura 1 tableau par processus. Le but est qu'un fois par mois je puisse compiler ce que les pilotes auront renseignés dans leur processus.
j'espère que c'est clair?
Merci
18 oct. 2015 à 16:58
Merci de le confirmer
18 oct. 2015 à 17:55
18 oct. 2015 à 19:04
Les tableaux 1,2,3,4 et 5, sont ils identiques aux 6e (où toutes les données seront jointes) ?
18 oct. 2015 à 19:12
La ligne 6 (titres des colonnes) est la même dans tous les tableaux.
Les lignes 7,8,9,10,11,12,....sont différentes. c'est ces lignes là que je souhaite compiler dans le 6è tableau.
Désolée, j'avais pas vu dans le fichier le 2ème onglet, en fait il compte pas c'est pour les listes déroulantes!