Macro qui copie sur la feuille insérée

Rebonjour à tous !

J'ai réalisé une macro pour copier des données dans une nouvelle feuille...

Le problème c'est que quand je sélectionne la nouvelle feuille et que je copie les infos dedans, le code de la macro inscrit "Sheets ("Feuil2"). Select"

Donc quand j'exécute une macro qui ouvrira la feuille suivante, dans cet exemple, la feuille 3, ben la macro ne comprend pas que je veux copier les infos dans la nouvelle feuille (la 3) et non pas dans la feuille 2... Et ainsi de suite pour les feuilles 4, 5, 6, 7, etc...

Comment lui faire comprendre cela?

Merci d'avance!

Mél

Bonsoir,

J'ai réalisé une macro pour copier des données dans une nouvelle feuille...

Le problème c'est que quand je sélectionne la nouvelle feuille et que je copie les infos dedans, le code de la macro inscrit "Sheets ("Feuil2"). Select"

heu, c'est ce que j'ai fait dans le fichier placé dans l'autre fil ....

Place le code ici que l'on voit ce qui est à faire

Amicalement

Dan

Sub Déplacement1()

'

' Déplacement1 Macro

'

'

Range("B2:C2").Select

ActiveWindow.ScrollColumn = 2

ActiveWindow.ScrollColumn = 3

ActiveWindow.ScrollColumn = 4

ActiveWindow.ScrollColumn = 5

ActiveWindow.ScrollColumn = 6

ActiveWindow.ScrollColumn = 7

Range("B2:C2,J2:U2").Select

Range("J2").Activate

Selection.Copy

Sheets.Add

ActiveSheet.Paste

Range("A2").Select

Sheets("Général").Select

ActiveWindow.ScrollColumn = 6

ActiveWindow.ScrollColumn = 5

ActiveWindow.ScrollColumn = 3

ActiveWindow.ScrollColumn = 2

ActiveWindow.ScrollColumn = 1

Range("B44:C44").Select

Application.CutCopyMode = False

Selection.Copy

Sheets("Feuil1").Select ActiveSheet.Paste

Sheets("Général").Select

ActiveWindow.ScrollColumn = 2

ActiveWindow.ScrollColumn = 3

ActiveWindow.ScrollColumn = 4

ActiveWindow.ScrollColumn = 5

ActiveWindow.ScrollColumn = 6

Range("J44:U44").Select

Application.CutCopyMode = False

Selection.Copy

Sheets("Feuil1").Select

Range("C2").Select

ActiveSheet.Paste

Range("N2").Select

Application.CutCopyMode = False

Selection.Borders(xlDiagonalDown).LineStyle = xlNone

Selection.Borders(xlDiagonalUp).LineStyle = xlNone

With Selection.Borders(xlEdgeLeft)

.LineStyle = xlContinuous

.ColorIndex = 0

.TintAndShade = 0

.Weight = xlThin

End With

With Selection.Borders(xlEdgeTop)

.LineStyle = xlContinuous

.ColorIndex = 0

.TintAndShade = 0

.Weight = xlThick

End With

With Selection.Borders(xlEdgeBottom)

.LineStyle = xlContinuous

.ColorIndex = 0

.TintAndShade = 0

.Weight = xlThin

End With

With Selection.Borders(xlEdgeRight)

.LineStyle = xlContinuous

.ColorIndex = 0

.TintAndShade = 0

.Weight = xlThin

End With

Selection.Borders(xlInsideVertical).LineStyle = xlNone

Selection.Borders(xlInsideHorizontal).LineStyle = xlNone

Range("A2").Select

Selection.Copy

Sheets("Feuil1").Select

Sheets("Feuil1").Name = "Berktold"

Range("A3").Select

End Sub

Merci ! Je l'ai reprodui sur le tableau de l'autre fil, comme ca ca sera plus clair pour toi

C'est ce qui est en gras qui joue pas...

Mél.

-- Mar Déc 08, 2009 11:39 pm --

Et puis je pensais bien que tu l'avais fait dans l'autre fil... Mais je n'arrive pas voir ou c'est dans le code.... Moi et les codes, ca fait 2.....

Du coup je ne comprends pas comment tu as fait....

Mais bon....

re,

Comme ceci :

Sheets("Feuil1").Select
ActiveSheet.Paste

au lieu de

Sheets("Feuil1").Select ActiveSheet.Paste

Sinon, je ne comprends pas trop ce qui est à faire et la lecture du code ne donne pas assez de visibilité, à savoir :

  • Le nom de la feuille de laquelle on copie les cellules B2:C2,J2:U2" --> Feuille "Général" ??
  • Où on doit copier sur la nouvelle feuille créée --> Cellule A2 ???
  • idem plus bas avec les cellules J44 à U44 de la feuille Général
  • La feuille 1 c'est la nouvelle feuille créee ?

Un point à modifier est la suppression de tous les "ActiveWindow.ScrollColumn"

En attendant tes précisions

Amicalement

Dan

Désolée, il y a eu une erreur de frappe lors de la copie du code.

C'était effectivement :

Sheets("Feuil1").Select

ActiveSheet.Paste

Pour répondre à vos questions :

  • Le nom de la feuille de laquelle on copie les cellules B2:C2,J2:U2 viennent effectivement de la feuille "Général".
  • Les données des cellules B2:C2,J2:U2 de la feuille "Général" doivent être copiées en cellule A1 dans la nouvelle feuille.
  • Les cellules J44:U44, ainsi que B44:C44 de la feuille "Général" doivent être copiées en A2 dans la nouvelle feuille.
  • La feuille 1 est effectivement la nouvelle feuille créée. Sauf que la macro devra le faire pour toutes les nouvelles feuilles (qui ne seront plus des feuille 1...). Je crois que le problème vient de là... J'en suis meme presque sûre
Mais je ne m'avance pas trop vite, n'étant pas une pro de excel... Loin de là meme...

J'espère que mes explications vous aideront hihi

A bientot.

Mél

Re,

Sauf que la macro devra le faire pour toutes les nouvelles feuilles (qui ne seront plus des feuille 1...).

Là il faut savoir sur quel critère cela doit se faire.

Sinon code à essayer pour une feuille :

Sub test()
'Macro Dan pour melou le 09/12/2009
With Sheets("Général")
    .Range("B2:C2,J2:U2").Copy Sheets.Add.Range("A1")
    .Range("B44:C44,J44:U44").Copy Range("A2")
End With
End Sub

Amicalement

Dan

Le code ne marche pas très bien... Ca copie aux mauvais endroits et ca ne copie pas tout...

Mél

-- Mer Déc 09, 2009 5:03 pm --

Ca copie que les cellules B2:C2, J2:U2 de "Général" (qui se copient au bon endroit enfait..)

Mais les cellules que je veux copier, exemple : B23:C23, J23:U23 de "Général" ne viennent pas...

Mél

re,

Le code ne marche pas très bien...Ca copie aux mauvais endroits et ca ne copie pas tout...Mais les cellules que je veux copier, exemple : B23:C23, J23:U23 de "Général" ne viennent pas...

Dans la demande, tu parles de B2:C2, J2:U2 et de B44:C44, J44:U44 et pas de la ligne 23. Donc normal que ce n'est pas copié.

Sans avoir plus d'explications sur ce qui est à faire exactement pas possible que je dise à excel ce qu'il doit faire.

Mieux donne un fichier qui montre de quoi on part et ce que le tableau final.

Dan

Oui je parle de lignes 44, 23... Ca pourrait aussi être 15, 55...

Si tu veux... Ce qui se trouve en ligne 2 c'est les "titres"...

Et après je veux que ca puisse me coller n'importe qu'elle autre cellules de la meme ligne (depuis la ligne 3) sur la nouvelle feuille...

Si tu veux un tableau, tu peux te baser sur celui que je t'avais envoyé pour l'autre fil. Car ils sont à peu près pareils, je dois juste faire différentes macros avec...

Voilààà

Bonne soirée.

Mél

re,

Oui je parle de lignes 44, 23... Ca pourrait aussi être 15, 55... Si tu veux... Ce qui se trouve en ligne 2 c'est les "titres"...

Hum...

  • la ligne 15, 55 ou autre, comment on décide de la ligne à placer sur l'autre feuille et cette va vers quelle feuille ?
  • Comme j'ai demandé dans un post précdent, quel est le critère de la création de la feuille ? à moins qu'il n'y ai qu'une seule feuille ?

Dan

Ben la ligne à placer, c'est nous qu'on décide... Faut juste que la macro comprenne que faut les copier dans la nouvelle feuille qui vient d'etre créée et non pas sur une autre... C'est juste ca le problème...

Re,

Voici un code à essayer qui créera, une nouvelle feuille et y reportera les données de la ligne 2 de la feuille "Général" ainsi que les données de la ligne sur laquelle se trouve le curseur dans cette même feuille "général"

Sub test2()
Dim lig As Integer
'Macro Dan pour melou le 09/12/2009
lig = ActiveCell.Row
With Sheets("Général")
    .Range("B2:C2,J2:U2").Copy Sheets.Add.Range("A1")
    .Range("B" & lig & ":C" & lig, "J" & lig & ":U" & lig).Copy Range("A2")
End With
End Sub

Dan

Merci beaucoup

Sauf que les données de la ligne sur laquelle se trouve le curseur doivent se reporter en ligne 2 sur la feuille insérée et non sur la feuille "général".... Je suis navrée, je n'ai certainement pas été assez claire...

Mais sinon c'est parfait =)

1 2

re,

Hum... désolé..

Change cette instruction

.Range("B" & lig & ":C" & lig, "J" & lig & ":U" & lig).Copy Range("A2")

par

.Range("B" & lig & ":C" & lig, "J" & lig & ":U" & lig).Copy ActiveSheet.Range("A2")

Amicalement

Dan

Yes super !!! Ca se colle au bon endroit !!! Donc à ce niveau, c'est nickel

Y a juste encore un petit souci de cellules... Ca copie les cellules "B à U"... Et pas seulement les "B à C" et "J à U"...

J'espère pas que c'est de nouveau moi qui ai mal expliqué

Et sinon j'ai encore une petite subtilité à demander... (Je sais, je vous fais bosser... et j'en suis navrée...) Mais je voulais savoir si c'est possible de fait un collage spécial avec liaison à la place d'un collage normal...?

(Si c'est trop dur, vous abandonnez hein...)

Et je ne sais pas si vous avez vu un de mes autres postes concernant les dates qui jouent pas avec le collage spécial liaison... (Quelqu'un m'a donné la technique de la mise en forme conditionnelle qui marche très bien...) Ca serait possible de mettre ca dans la macro aussi? Si ce serait possible d'intégrer ca à la macro ca serait chouette...

Je sais que je vous en demande énormément... Mais quand tout mes dossiers excel seront terminés, j'essaierai de trouver un moyen de vous remercier... Vraiment... Sans vous, je serais perdue (et croyez moi, c'est vrai).

Bon je crois que c'est pas un forum de bla bla de remerciements, alors je m'arrête là.

Mais juste que vous sachiez que votre forum est vraiment une réussite Bravo, bravo, bravo !!!

Mél.

-- Ven Déc 11, 2009 2:59 pm --

C'est tout bon pour le collage !!! J'ai réussi à faire en sorte que ca se colle au bon endroit

Par contre pour le problème du collage spécial, si vous avez une solution, je l'écoute très volontier

Merci pour tout!

Mél.

Re,

Voici le code à essayer :

Sub test()
Dim lig As Integer
'Macro Dan pour melou le 12/12/2009
lig = ActiveCell.Row
With Sheets("Général")
    .Range("B2:C2, J2:U2").Copy Sheets.Add.Range("A1")
    .Range("B" & lig & ":C" & lig & ",J" & lig & ":U" & lig).Copy
End With
With ActiveSheet
    .Range("A2").Select
    .Paste Link:=True
End With
Application.CutCopyMode = False
End Sub

Cordialement

Dan

Super !!! Merci beaucoup pour tout !

Mél

Re,

Merci de cloturer le fil de discussion comme demandé et expliqué ici --> https://forum.excel-pratique.com/excel/explications-et-regles-a-respecter-t13.html

Amicalement

Dan

Voilà Merci encore pour tout !!!

Rechercher des sujets similaires à "macro qui copie feuille inseree"