Copier coller sur deux pages VBA

Bonjour à tous,

voilà j'ai un petit soucis avec mon code VBA que je viens de créer, le problème c'est que je souhaite faire un copier coller de la feuille saisie vers la feuille histo ET la feuille Base de donnée

vous trouverez le code :

A mon avis il manque juste une petite bidouille à faire mais là je ne vois vraiment pas c'est le flou le plus totale un grand merci d'avance !

Private Sub CommandButton1_Click()

Dim i As Byte

Application.EnableEvents = False

Range("D5").Select

Application.EnableEvents = True

Sheets("base de donnée").Visible = True

Sheets("saisie").Range("l4:s4").Copy

With Sheets("base de donnée")

With Sheets("histo")

.Rows(3).Insert

With .Range("A3")

.PasteSpecial Paste:=xlPasteValues

.PasteSpecial Paste:=xlPasteFormats

End With

End With

End With

Sheets("base de donnée").Select

Application.CutCopyMode = False

Sheets("saisie").Select

Range("D5").Select

Selection.ClearContents

Range("D6").Select

Selection.ClearContents

Range("D7").Select

Selection.ClearContents

Range("D8").Select

Selection.ClearContents

Range("D9").Select

Selection.ClearContents

Range("D10").Select

Selection.ClearContents

Range("D11").Select

Selection.ClearContents

Range("D12").Select

Selection.ClearContents

Range("D13").Select

Selection.ClearContents

Range("D14").Select

Selection.ClearContents

Range("D15").Select

Selection.ClearContents

Sheets("saisie").Visible = True

Sheets("base de donnée").Visible = True

End Sub

Bonjour,

je pense qu'il faut que tu différencies les deux traitements, faire un with pour la 1ere copie, puis un with pour la 2eme, plutôt que cet imbriquement et ça devrait marcher.

Sinon pour ton effacement à la fin, pas la peine de le faire cellule par cellule, un range("D5:D15").clearcontents marchera aussi bien

Cordialement,

edit : sinon joint ton fichier en enlevant les données confidentielles.

Bonjour, Zirak

je ne comprend pas trop ton post, car pour moi (je suis novice en la matière) le with permet de cumuler les conditions ?

si tu as le temps peux tu me montrer comment faire l'imbriquement !

merci d'avance

Tu peux certes cumuler les conditions pour 1 élément (comme les différentes propriétés d'une feuille, d'un bouton , ou autres), mais je ne suis pas certains que tu puisses cumuler 2 pages différentes pour y affecter un traitement.

enfin sans fichier voilà déjà quelques remarques :

- Tu dimensionnes une variable i dont tu ne te sers nul part, quel est l'intérêt ?

- Idem pour ton Application.EnableEvents de part et d'autres de ton instruction de sélection de cellule, je ne vois pas l'utilité (enfin du moins sans le fichier sous les yeux), d'ailleurs pourquoi sélectionnes-tu la cellule D5 vu qu'elle ne fait même pas partie de la plage que tu copies ?

Pour la copie en-elle même, n'ayant pas trop l'habitude de faire les miennes avec des with, je ne préfère pas te donner un code non testé qui ne marchera surement pas, donc si jamais tu pouvais joindre un fichier exemple, cela serait plus pratique.

Cordialement,

Un grand merci j'ai réussi

Bonjour

J'ai une solution qui fonctionne mais j'aimerais savoir pourquoi si je veux insérer une ligne dans la groupement de page il faut que je passe par la Selection.insert

J'ai essayé Rows(3).Insert cela n'insére que sur une feuille : Je dois rater quelque chose (encore)

La macro à ma sauce

Private Sub CommandButton1_Click()

  Sheets(Array("base de donnée", "Histo")).Select
  Rows("3:3").Select
  Selection.Insert
  Sheets("Saisie").Range("l4:s4").Copy
  With Range("A3")
    .PasteSpecial Paste:=xlPasteValues
    .PasteSpecial Paste:=xlPasteFormats
    .Select
  End With
  Sheets("Saisie").Select
  Range("D5:D15").ClearContents
  Sheets("saisie").Visible = True
  Sheets("base de donnée").Visible = True
End Sub
Rechercher des sujets similaires à "copier coller deux pages vba"