Fonction VBA pour copier coller une feuille

Bou6Fedi Messages postés 11 Statut Membre -  
ccm81 Messages postés 11033 Statut Membre -
j'ai crée une fonction qui copie colle une feuille, pourtant lorsque j’appelle cette fonction j'arrive pas a comprendre pourquoi les feuilles ne sont pas crée
voila mon code

Public Function CopyPast(rg As Range) As Integer

Dim sheetName As String
Dim pos As Integer

sheetName = rg.Value
pos = rg.Row

ActiveWorkbook.Sheets("template").Copy _
after:=ActiveWorkbook.Sheets(pos)
ActiveSheet.Name = sheetName
CopyPast = pos

End Function

3 réponses

  1. ccm81 Messages postés 11033 Statut Membre 2 434
     
    Tu peux l'exécuter pour chaque cellule de la sélection
    Public sub Machin()
    dim rg as range
    for each rg in selection
    ...
    ...
    next rg
    End sub
    1
    1. Bou6Fedi Messages postés 11 Statut Membre
       
      Ok merci bien
      0
    2. ccm81 Messages postés 11033 Statut Membre 2 434
       
      De rien

      Si c'est fini, peux tu mettre le sujet à résolu (en dessous du titre de ton premier message)

      Bonne fin de journée
      0
  2. ccm81 Messages postés 11033 Statut Membre 2 434
     
    Bonjour

    Une fonction est fate pour renvoyer une valeur et non pour modifier l'environnement
    Utilises plutot une procédure
    Public sub Machin(...)

    ...

    End sub

    Cdlmnt
    0
    1. Bou6Fedi Messages postés 11 Statut Membre
       
      Merci ccm81 pour ton aide mais comme ca je ne peut pas l'appeler a partir d'une cellule excel (je ne peux pas faire =Machin(...) dans une cellule excel)
      0
  3. ccm81 Messages postés 11033 Statut Membre 2 434
     
    Mais tu peux lui affecter un raccourci clavier, la macro s'exécutant sur la cellule selectionnée.
    Public sub Machin()
    dim rg as range
    set range = selection
    ...
    ...

    End sub

    Cdlmnt
    0
    1. Bou6Fedi Messages postés 11 Statut Membre
       
      D'accord ça a marché maintenant, mais y'a pas une plus belle façon de faire ça, suppose que j'ai 10000 cellule donc a chaque fois je dois sélectionner la cellule + Raccourci Clavier,
      0