Macro excel copier/coller deux listes de données variables dans feuille3
Tags :
Dernière réponse : dans Programmation
Bonsoir à tous;
Voilà, j'ai un souci avec ma macro que j'ai créé par "enregistement", sur deux listes ayant les memes critéres (données, intitulé de colonnes), soit par copier/coller en superposion dans feuille 3 aux fins de rélaliser un TCD sur feuille3. sa fonctionne bien quant il n y a pas de changement dans le nombre de lignes dans feuille1 ou feuille2, mais dès que le nbre de lignes change! elle fonctionne, mais hélas les résultats foirent!! j'ai bien compris le pb, mais je n'arrive pas à le surpasser! c clair je ne suis qu'un débutant
la macro ne reconnait pas ces limites dans feuille1 et 2, (les bornes de la copie et l'endroit ou elle doit coller dans feuille3)! j'espere que vous avez bien compris mon problème pour pouvoir m'aider à le solutionner? je vous remercie par avance pour votre partage..
PS: Désolé pour l'hortographe..
Voilà, j'ai un souci avec ma macro que j'ai créé par "enregistement", sur deux listes ayant les memes critéres (données, intitulé de colonnes), soit par copier/coller en superposion dans feuille 3 aux fins de rélaliser un TCD sur feuille3. sa fonctionne bien quant il n y a pas de changement dans le nombre de lignes dans feuille1 ou feuille2, mais dès que le nbre de lignes change! elle fonctionne, mais hélas les résultats foirent!! j'ai bien compris le pb, mais je n'arrive pas à le surpasser! c clair je ne suis qu'un débutant
la macro ne reconnait pas ces limites dans feuille1 et 2, (les bornes de la copie et l'endroit ou elle doit coller dans feuille3)! j'espere que vous avez bien compris mon problème pour pouvoir m'aider à le solutionner? je vous remercie par avance pour votre partage..PS: Désolé pour l'hortographe..
Autres pages sur : macro excel copier coller listes donnees variables feuille3
Lassé par la pub ? Créez un compte
- | Alerter
- | Alerter
- | Alerter
Contenus similaires
- Copier coller macro excel - Forum
- Macro copier coller feuille excel - Forum
- Macro copier coller excel - Forum
- Macro excel copier coller - Forum
Non, je ne ferai pas ton boulot à ta place (*).
Alors je t'invite à publier ton code, et on va le faire évoluer pour qu'il résolve ton problème.
A te lire.
------------
(*) Oui, je sais, je vais passer plus de temps et dépenser plus d'énergie à te dire comment faire, à te guider vers une solution plutôt qu'en te balançant une soluce toute faite. Mais je ne fonctionne pas comme ça. Tant pis...
Alors je t'invite à publier ton code, et on va le faire évoluer pour qu'il résolve ton problème.
A te lire.
------------
(*) Oui, je sais, je vais passer plus de temps et dépenser plus d'énergie à te dire comment faire, à te guider vers une solution plutôt qu'en te balançant une soluce toute faite. Mais je ne fonctionne pas comme ça. Tant pis...
- | Alerter
J'ai bien lu les différents sujet que tu a fusionné avec la discussion et je te remercie..de la j'ai bien pigé ton excelente méthode de partage de savoir..chapeau bas.
Au fait, j'ai réussi à le faire avec un autre procédé:
En réalité, j'ai copié la boucle d'une macro que j'ai téléchargé..j'avoue que je ne comprends pas bien le language VB..
Par ailleurs, ma macro doit continuer le traitement à partir de la feuil3, pour réaliser un tableau croisé dynamique, et la je freine aussi sur:
- Comment selectionner la base dans feuil3, et ce quelque soit les variations dans le nombre de lignes?
En tout cas je vais mettre le code par suite:
Je pense que je dois intervenir a la ligne 4, sans fixer la limite??
cdt
Au fait, j'ai réussi à le faire avec un autre procédé:
Sheets("Feuil3" ).[A1].CurrentRegion.Offset(1, 0).Clear For Each s In Array("Feuil1", "Feuil2" ) Nlig = Sheets(s).[A65000].End(xlUp).Row - 1 Ncol = Sheets(s).[A1].CurrentRegion.Columns.Count [A65000].End(xlUp).Offset(1, Ncol).Resize(Nlig, 1).Value = Sheets (s).Name [A65000].End(xlUp).Offset(1, 0).Resize(Nlig, Ncol).Value = _ Sheets(s).[A2].Resize(Nlig, Ncol).Value Next s
En réalité, j'ai copié la boucle d'une macro que j'ai téléchargé..j'avoue que je ne comprends pas bien le language VB..
Par ailleurs, ma macro doit continuer le traitement à partir de la feuil3, pour réaliser un tableau croisé dynamique, et la je freine aussi sur:
- Comment selectionner la base dans feuil3, et ce quelque soit les variations dans le nombre de lignes?
En tout cas je vais mettre le code par suite:
Sheets("Feuil3" ).Select ActiveWindow.SmallScroll Down:=-12 Range("A1" ).Select ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _ Feuil3!R1C1:R2119C5", version:=xlPivotTableVersion10).CreatePivotTable _ TableDestination:="Feuil4!R1C1", TableName:="Tableau croisé dynamique1", _ DefaultVersion:=xlPivotTableVersion10
Je pense que je dois intervenir a la ligne 4, sans fixer la limite??
cdt
- Karim_1972 a édité ce message
- Karim_1972 a édité ce message
- Karim_1972 a édité ce message
- Karim_1972 a édité ce message
- Karim_1972 a édité ce message
- Karim_1972 a édité ce message
- Karim_1972 a édité ce message
- | Alerter
Merci de me comprendre.
Merci de respecter le règlement : toute pièce de code doit être présentée entre les balises [code] .. [/code] (En plus, je t'avais prévenu)
Modifie ton message, stp.
C'est bien sûr Feuil3!R1C1:R2119C5 qu'il va falloir construire.
Et le code qu'il va falloir revoir un peu. Là, c'est très moche.
Veux-tu de l'aide pour mieux comprendre le VB ?
Merci de respecter le règlement : toute pièce de code doit être présentée entre les balises [code] .. [/code] (En plus, je t'avais prévenu)
Modifie ton message, stp.
C'est bien sûr Feuil3!R1C1:R2119C5 qu'il va falloir construire.
Et le code qu'il va falloir revoir un peu. Là, c'est très moche.
Veux-tu de l'aide pour mieux comprendre le VB ?
- | Alerter
Pour la modification! tout simplement je n'arriva pas..
X'est trés moche! oui car je procede par enregistrement de macro et j'essaye de nettoyer les lignes inutiles..! débutant
j'ai bien compris que sur cette la Feuil3!R1C1:R2119C5 que je dois intervenir, mais en vain!
j'ai essayé:
j'essaye toujours..
cdt
X'est trés moche! oui car je procede par enregistrement de macro et j'essaye de nettoyer les lignes inutiles..! débutant
j'ai bien compris que sur cette la Feuil3!R1C1:R2119C5 que je dois intervenir, mais en vain!
j'ai essayé:
sa donne rien et meme: [: R" & ligne & "C5"]...
=DECALER(Feuil3!$A$1;;;NBVAL(Feuil3!$A:$A);NBVAL(Feuil3!$1:$1))
j'essaye toujours..
cdt
- Karim_1972 a édité ce message
- Karim_1972 a édité ce message
- | Alerter
grrrrr ... Edite tes messages pour bien les présenter !!!
(C'est chiant, je suis à la fois le mieux placé pour t'aider en VB - sans fausse modestie - et le modérateur intransigeant de cette partie du forum)
Dès que t'as un code un peu bien présenté, je te le transforme sous tes yeux ébahis en quelque chose de si simple à lire puis à refaire que la solution pourrait te paraître évidente.
(bon, ça va être le week-end. Promis je ne t'abandonne pas)
(C'est chiant, je suis à la fois le mieux placé pour t'aider en VB - sans fausse modestie - et le modérateur intransigeant de cette partie du forum)
Dès que t'as un code un peu bien présenté, je te le transforme sous tes yeux ébahis en quelque chose de si simple à lire puis à refaire que la solution pourrait te paraître évidente.
(bon, ça va être le week-end. Promis je ne t'abandonne pas)
- | Alerter
Sur ton géni je m'en doute pas! j'ai vu déjà un bout dans ta méthode..Merci et je compte sur ton aide..
Miracle!! crois moi, j'ai réussi à le faire bien que petit!!..
Sa marche nikel! et sans faute...
Imagine ! et dire je ne suis q'un économiste de formation
et la macro évolue..! je récapitule mon travail:
- Créer un classeur excel
- copier une table de données dans feuil1
- copier une autre table de données dans feuil2
- lancer la macro ===>Pour:
- mettre en forme la table de feuil1 (modification des réferences, convertir les données, créer d'autres colonnes, remplacer des caractères et renomer les intitulés de colonnes..)
- même chose pour feuil2, en tenant compte du nombre de lignes qui poura connaitre des variations (+ ou-)..
- copier feuil1 et feuil2 dans feuil3 par suite en superposion pour avoir une seul table de données fusionnée..
- lancer un TCD de la feuil3 sur feuil4 et mise en forme adéquate..
- copier le TCD de la feuil4 le coller (spécial) sur feuil5 et le mettre en forme..
- introduire une formule de controle des soldes de la premiere ligne à la derniere..
- rajouter une autre colonne a droite ayant comme intitulé observation.
- introduire une formule qui va rajouter une observation "Type" suivant les soldes de l'avant derniere colonne..
Voilà donc, a quoi je suis arrivé en ce moment bien que petit
..mais vraiment! je te raconte pas mes sensations..
Je compte encore la faire évoluer de manière à créer un petit utilitaire sous excel, genre formulaire access..
Au fait, je viens de me rappeler d'un autre détail que je vais te poser:
- à la premiere étape( création du classer), je dois obligatoirement me positionner sur la feuil1 "A1" pour en suite lancer la macro, si non elle fonctionne pas! (elle ne retrouve pas ces repères !?) il doit y avoir un moyen d'automatiser le positionnement sur la feuil1???
Merci encore une fois..
Bon Week End.
Miracle!! crois moi, j'ai réussi à le faire bien que petit!!..
Sheets("Feuil3"].Select lignefin = Cells(1, 1).CurrentRegion.Rows.Count colfin = Cells(1, 1).CurrentRegion.Columns.Count lignedep = 1 coldep = 1 ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _ "Feuil3!R" & lignedep & "C" & coldep & ":R" & lignefin & "C" & colfin, Version:=xlPivotTableVersion10).CreatePivotTable _ TableDestination:="Feuil4!R1C1", TableName:="Tableau croisé dynamique1", _ DefaultVersion:=xlPivotTableVersion10 Sheets("Feuil4" ).Select Cells(1, 1).Select
Sa marche nikel! et sans faute...
Imagine ! et dire je ne suis q'un économiste de formation
et la macro évolue..! je récapitule mon travail:
- Créer un classeur excel
- copier une table de données dans feuil1
- copier une autre table de données dans feuil2
- lancer la macro ===>Pour:
- mettre en forme la table de feuil1 (modification des réferences, convertir les données, créer d'autres colonnes, remplacer des caractères et renomer les intitulés de colonnes..)
- même chose pour feuil2, en tenant compte du nombre de lignes qui poura connaitre des variations (+ ou-)..
- copier feuil1 et feuil2 dans feuil3 par suite en superposion pour avoir une seul table de données fusionnée..
- lancer un TCD de la feuil3 sur feuil4 et mise en forme adéquate..
- copier le TCD de la feuil4 le coller (spécial) sur feuil5 et le mettre en forme..
- introduire une formule de controle des soldes de la premiere ligne à la derniere..
- rajouter une autre colonne a droite ayant comme intitulé observation.
- introduire une formule qui va rajouter une observation "Type" suivant les soldes de l'avant derniere colonne..
Voilà donc, a quoi je suis arrivé en ce moment bien que petit
..mais vraiment! je te raconte pas mes sensations..Je compte encore la faire évoluer de manière à créer un petit utilitaire sous excel, genre formulaire access..
Au fait, je viens de me rappeler d'un autre détail que je vais te poser:
- à la premiere étape( création du classer), je dois obligatoirement me positionner sur la feuil1 "A1" pour en suite lancer la macro, si non elle fonctionne pas! (elle ne retrouve pas ces repères !?) il doit y avoir un moyen d'automatiser le positionnement sur la feuil1???
Merci encore une fois..
Bon Week End.
- Karim_1972 a édité ce message
- Karim_1972 a édité ce message
- Karim_1972 a édité ce message
- Karim_1972 a édité ce message
- Karim_1972 a édité ce message
- Karim_1972 a édité ce message
- Karim_1972 a édité ce message
- Karim_1972 a édité ce message
- Karim_1972 a édité ce message
- Karim_1972 a édité ce message
- Karim_1972 a édité ce message
- Karim_1972 a édité ce message
- | Alerter
- | Alerter
Mais il le fait exprès ce type !
Eh l'économiste, l'utilisation de ce site est soumis à l'acceptation d'un règlement qui stipule que tu dois présenter toute pièce de code entre les balises [code=VB] et [/code]. Pourquoi refuses-tu de le faire ?
________________
(En tout cas je suis content que tu ais trouvé tout seul.
)
Eh l'économiste, l'utilisation de ce site est soumis à l'acceptation d'un règlement qui stipule que tu dois présenter toute pièce de code entre les balises [code=VB] et [/code]. Pourquoi refuses-tu de le faire ?
________________
(En tout cas je suis content que tu ais trouvé tout seul.
) - | Alerter
Relax professeur..
Je t'assure que je le fais pas exprès
simplement j'ai pas réussi à le faire et dailleurs j'ai perdu bcps de temps pour ça et j'ai pas trouvé, comment?
Sache que pour les prochains messages sa sera fait..
J'espere que tu as passé un bon WE, moi je suis passé à une autre étape qui est:
- Création d'un formulaire qui va faciliter l'execution de ces macros...! et je trouve pas comment..!
Tes orientations seront les bienvenues.
A+
Je t'assure que je le fais pas exprès
simplement j'ai pas réussi à le faire et dailleurs j'ai perdu bcps de temps pour ça et j'ai pas trouvé, comment?
Sache que pour les prochains messages sa sera fait..
J'espere que tu as passé un bon WE, moi je suis passé à une autre étape qui est:
- Création d'un formulaire qui va faciliter l'execution de ces macros...! et je trouve pas comment..!
Tes orientations seront les bienvenues.
A+
- Karim_1972 a édité ce message
- | Alerter
- | Alerter
Salut Karim,
T'as dérangé l'admin, c'est malin
Si tu as un autre problème, ouvre un autre sujet s'il te plaît.
Si tu prétends vouloir continuer à te faire aider ici, mets tes messages antérieurs correctement en forme, par principe.
Les bénévoles qui œuvrent ici n'ont comme rétribution que le respect qu'on leur accorde.
C'est pourquoi la politesse, l'orthographe et le respect des usages sont si importants à nos yeux.
T'as dérangé l'admin, c'est malin
Si tu as un autre problème, ouvre un autre sujet s'il te plaît.
Si tu prétends vouloir continuer à te faire aider ici, mets tes messages antérieurs correctement en forme, par principe.
Les bénévoles qui œuvrent ici n'ont comme rétribution que le respect qu'on leur accorde.
C'est pourquoi la politesse, l'orthographe et le respect des usages sont si importants à nos yeux.
- | Alerter
Salut Zeb / Sylvain;
Désolé si je vous ai dérangé à propos! mais croyez-moi j'ai pas réussi à le faire, ni même pour modifier les antérieurs messages..
Promesse faite pour les prochains, dailleurs, j'ai plein d'autres questions mais j'essaye toujours de réussir ce:
Entre les balises [code=VB], est-ce que je dois écrire=VB à chaque ligne??
Merci Chers professeurs
Désolé si je vous ai dérangé à propos! mais croyez-moi j'ai pas réussi à le faire, ni même pour modifier les antérieurs messages..
Promesse faite pour les prochains, dailleurs, j'ai plein d'autres questions mais j'essaye toujours de réussir ce:
...
et
Entre les balises [code=VB], est-ce que je dois écrire=VB à chaque ligne??
Merci Chers professeurs
- | Alerter
- | Alerter
M'enfin ?!?!?
Pour l'instant, je me demande si tu es complètement idiot ou si il y a un tel décalage de références entre nous qui fait que nous ne nous comprenons pas. Dans l'intérêt de cette conversation, je vais opter a priori pour la seconde, en espérant ne pas me tromper, ceci pour ne pas perdre mon temps !
--------------------------------------------------------------
Voici un morceau de code, bien présentée :
Tu remarqueras que c'est du C et non pas du VB. C'est pour fixer les idées et varier les plaisirs
Pour "voir" comment je l'ai écris, clique sur le lien BBcode en bas à gauche de mon message. Ce que j'ai effectivement écris va t'apparaître.
Comprends-tu maintenant ce qu'on te demande ?
Pour l'instant, je me demande si tu es complètement idiot ou si il y a un tel décalage de références entre nous qui fait que nous ne nous comprenons pas. Dans l'intérêt de cette conversation, je vais opter a priori pour la seconde, en espérant ne pas me tromper, ceci pour ne pas perdre mon temps !
--------------------------------------------------------------
Voici un morceau de code, bien présentée :
#include <stdio.h> main() { return 0; }
Tu remarqueras que c'est du C et non pas du VB. C'est pour fixer les idées et varier les plaisirs
Pour "voir" comment je l'ai écris, clique sur le lien BBcode en bas à gauche de mon message. Ce que j'ai effectivement écris va t'apparaître.
Comprends-tu maintenant ce qu'on te demande ?
- zeb a édité ce message
- zeb a édité ce message
- zeb a édité ce message
- zeb a édité ce message
- | Alerter
- | Alerter
- | Alerter
Re Bonsoir;
Si vous permettez, j'ai une autre question:
Dans le programme, j’ai introduit dans la colonne « H » une fonction qui test à la fois la colonne « B » et « G » et mets en conclusions dans « H » des observations (Texte)..
1- Reco
2- Test
3- Demo
En fonction de ces observations j’ai programmé une couleur sur toute la ligne allant de (B :H)
Par ailleurs, la formule renvoi des erreurs dans la collonne « H » #VALEUR! Si elle ne trouve rien dans la colonne « b » (le premier test), c’est normal..
J’ai pensé donc, de mettre une couleur de fond « Blanc »pour ces erreurs de formules afin de les dissimulées et parfaire l’affichage.
Le programme fonctionne à merveille sur mon PC sous Excel 2010, mais sur d’autres (sous Excel 2007 & 97) sa beug, il renvoi une erreur ‘438’.. ?? a la ligne 28 :.ThemeColor = xlThemeColorDark1
Ci-après le code:
Est-ce que c’est un problème de version ou autre ??
Merci par avance.
Si vous permettez, j'ai une autre question:
Dans le programme, j’ai introduit dans la colonne « H » une fonction qui test à la fois la colonne « B » et « G » et mets en conclusions dans « H » des observations (Texte)..
1- Reco
2- Test
3- Demo
En fonction de ces observations j’ai programmé une couleur sur toute la ligne allant de (B :H)
Par ailleurs, la formule renvoi des erreurs dans la collonne « H » #VALEUR! Si elle ne trouve rien dans la colonne « b » (le premier test), c’est normal..
J’ai pensé donc, de mettre une couleur de fond « Blanc »pour ces erreurs de formules afin de les dissimulées et parfaire l’affichage.
Le programme fonctionne à merveille sur mon PC sous Excel 2010, mais sur d’autres (sous Excel 2007 & 97) sa beug, il renvoi une erreur ‘438’.. ?? a la ligne 28 :.ThemeColor = xlThemeColorDark1
Ci-après le code:
Range("H2").Select ActiveCell.FormulaR1C1 = _ "=IF(SEARCH(""total"",C[-6], 1), IF(RC[-1]=0, ""Reco"", IF(RC[-1]>0, ""Test"",""A_Demo"")))" Do While Not (IsEmpty(ActiveCell)) Cells(ActiveCell.Row, 8).Formula = "=IF(SEARCH(""total"",C[-6], 1), IF(RC[-1]=0, ""Reco"", IF(RC[-1]>0, ""Test"",""Demo"")))" Selection.Offset(1, 0).Select Loop Sheets("Feuil5").Select lig = Cells.Find("*", , xlFormulas, , xlByRows, xlPrevious).Row col = Cells.Find("*", , xlFormulas, , xlByColumns, xlPrevious).Row Dim derlig As Long derlig = Range("A65536").End(xlUp).Row Range(Cells(1, 2), Cells(derlig, 8)).Select With Selection .FormatConditions.Delete .FormatConditions.Add Type:=xlExpression, Formula1:="=$H1=""Reco""" .FormatConditions(1).Interior.ColorIndex = 15 .FormatConditions.Add Type:=xlExpression, Formula1:="=$H1=""Test""" .FormatConditions(2).Interior.ColorIndex = 40 .FormatConditions.Add Type:=xlExpression, Formula1:="=$H1=""Demo""" .FormatConditions(3).Interior.ColorIndex = 35 End With Columns("H:H").Select Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _ "=ESTERREUR(H1)" Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority With Selection.FormatConditions(1).Font .ThemeColor = xlThemeColorDark1 .TintAndShade = 0 End With Selection.FormatConditions(1).StopIfTrue = True
Est-ce que c’est un problème de version ou autre ??
Merci par avance.
- Karim_1972 a édité ce message
- | Alerter
- | Alerter
Oui, Idiot est une insulte. C'est pourquoi je me permettais une alternative.
En constatant que tu as enfin compris, que tu as corrigé et ce simplement par respect, je m'aperçois que l'alternative qui consistait à ne pas te considérer comme idiot était la bonne. Je n'ai donc pas perdu mon temps
--------------------------------
Encore une fois, si tu as un autre problème, ouvre un autre sujet s'il te plaît.
(C'est histoire que le titre et la question correspondent. Rapport au fait qu'on recherche ici par titre, et que ton problème, une fois résolu, puisse servir à d'autres.)
En constatant que tu as enfin compris, que tu as corrigé et ce simplement par respect, je m'aperçois que l'alternative qui consistait à ne pas te considérer comme idiot était la bonne. Je n'ai donc pas perdu mon temps
--------------------------------
Encore une fois, si tu as un autre problème, ouvre un autre sujet s'il te plaît.
(C'est histoire que le titre et la question correspondent. Rapport au fait qu'on recherche ici par titre, et que ton problème, une fois résolu, puisse servir à d'autres.)
- zeb a édité ce message
- | Alerter
Lassé par la pub ? Créez un compte