Copier/coller Excel VBA

Jacky1002 Messages postés 94 Statut Membre -  
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour à tous voici mon premier post sur ce site

je cherche à copier coller des cellules sous excel 2007 (je pense qu'il faut utiliser du VBA

jai un classeur de 300 feuilles +1

la première feuille récapitules les 300 autres je nest que celle la pour linstant les autre etant quasi vierge

chaque ligne reprend une des 300 feuilles nomées de 0001 à 0300
au debut de chaque ligne (colonne A) est inscrit les numéro de la page qu'elle récapitule.

exemples de copier que je voudrais reproduire 300 fois :
la ligne numérotée 0001 de la feuille nommée "stock" : copier la cellule de la colonne I en B2 de la feuille "0001" ; copier la cellule J en G2 de la feuille 0001 ; copier la cellule K en E2 de la feuille 0001 ; copier la cellule L en J2 de la feuille 0001, copier la cellule N en J3 de la feuille 0001 et enfin la cellule P en J4 de feuille 0001.
je ne precise pas le chiffre relatif aux cellules I ; J ; K ; L ; N ; P car je ne peu pas me basé sur la numérotation d'XL etant donné que jai des bouton pour trier je pense qu'il faut se basé sur le numéro présent en colonne A.

merci de vous penchez sur mon problème
Jacky

5 réponses

  1. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Bonjour,
    Je ne comprend pas !
    Les données sont à copier sur la feuille Stock ? : à partir de quel ligne ?
    Les données des autres feuilles sont sur quel ligne ?
    Tu dis.
    A+
    0
  2. Jacky1002 Messages postés 94 Statut Membre
     
    non les données sont à copier depuis la feuilles stock

    la feuille stock est composée de 300 lignes. Les lignes sont numéroté en colonne A de 0001 à 0300.

    dans le meme classeur j'ai 300 feuilles nommée de 0001 à 0300

    Sur la ligne numérotée 0001 je veu copier les cellules qui sont colonne I; J; K; L; N; et P (en gros cest peut être les celulle I1;J1;K1;L1;N1 et P1 mais ca peut aussi etre I300;J300;K300;L300;N300et P300 selon la façon dont je les tri) dans les cellules B2 ; G2 ; E2 ; J2 ; J3 ; J4 de la feuille 0001

    Idem pour la ligne 0002 de la feuille "Stock" mais sur la feuille "0002"

    Est ce plus clair?
    Jacky
    0
  3. madeliocustom Messages postés 42 Statut Membre 13
     
    Bonjour Jacky,

    de mon point de vue, une chose a la fois :
    en 1 - tu alimentes la feuille stock
    en 2 - tu tries
    et alors pas de probleme particulier pour faire l'algorithme de copie (a moins que je n'ai pas bien saisi, faudra dans ce cas re-expliquer).

    As-tu deja un algorithme que tu veux qu'on corrige ou bien pars-tu de 0 ?

    A+
    Madelio
    0
  4. Jacky1002 Messages postés 94 Statut Membre
     
    bonjour

    ma feuille de stock sera amener à changer par la suite (ajout ou suppression de lignes) de ce fait je préférerais pour voir continuer à trier après.

    N'y aurait il pas quelquechose a faire dans le genre :

    Si cellule de la colonne A=0001
    alors Feuille Stock.cellule I ; J ; K ; L ; N ; P.select
    Feuille 0001.cellule(B2 G2 E2 J2 J3 J4) collage spécial.value

    et puis un ptit truc pour lincrémenter ensuite ???

    je sais pas du tou je suppose
    merci
    Jacky
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Jacky1002 Messages postés 94 Statut Membre
     
    rebonjour

    je voudrais d'une prog de copie, en fait pour linstant ca peu me dépanner

    je vais commancer à la ligne 7 (numérotation XL)

    Sur la feuille "Stock" copier I7 J7 K7 L7 N7 P7 et les coller Feuille "0001" en B2 G2 E2 J2 J3 J4.

    ensuite Feuille "Stock" copier I8 J8 K8 L8 N8 P8 et les coller feuille "0002" en B2 G2 E2 J2 J3 J4

    pour copier, incrémenter les ligne de 1... pour coller les cellule reste les meme mais les feuilles sont à incrémenter de 1 sachant qu'elle sont numérotée de 0001 à 0300

    merci de votre aide
    Jacky
    0
    1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      Bonjour,

      Macro à installer dans le module thisworkbook de l'éditeur VBE

      Private Sub Workbook_SheetActivate(ByVal Sh As Object)
      'NOTA: sur la feuille "Stocks", les références d'onglets doivent être en format "texte"
      Dim onglet As String, lig As Integer
      
      onglet = ActiveSheet.Name
      If onglet <> "stocks" Then
          With Sheets("stocks")
              lig = .Columns(1).Find(onglet, .Range("A65536")).Row
              Sheets(onglet).Range("B2") = .Cells(lig, 9)
           '..... tes autres cellules
          End With
      End If
      End Sub
      

      modif : ajouter exclusion si sheets onglet est activé
      0