Création d'une fonction Macro à utiliser dans une module
senecartour
Messages postés
324
Date d'inscription
Statut
Membre
Dernière intervention
-
Polux31 Messages postés 6917 Date d'inscription Statut Membre Dernière intervention -
Polux31 Messages postés 6917 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je ne suis pas un spécialiste de la VBA, je code mais pour des petites choses.
Je me permets de vous solliciter car je souhaiterais comprendre création des fonctions personnalisées et leur utilisation en VBA.
Voici mon cas :
J'ai un classeur avec plusieurs onglets et je souhaiterais créer une fonction nommée "copier" permettant de parcourir tous les onglets de mon classeur. Si la fonction ne trouve pas un onglet nommé "produit", il m'affiche le message MsgBox "Onglet absent"
Si non elle copie les données de la feuille nommée "donnees" et les colle dans l'onglet "produit".
Ensuite, je dois utiliser cette fonction dans une ou autres modules de mon programme.
Exemple: je veux utiliser la fonction crée précédemment pour copier les données
Dans la module1
Sub remplir onglet
Copier "donnees", "produit"
End Sub
Voici le lien du fichier: https://www.cjoint.com/?DExqI3jBucS
Merci beaucoup pour votre aide!
Je ne suis pas un spécialiste de la VBA, je code mais pour des petites choses.
Je me permets de vous solliciter car je souhaiterais comprendre création des fonctions personnalisées et leur utilisation en VBA.
Voici mon cas :
J'ai un classeur avec plusieurs onglets et je souhaiterais créer une fonction nommée "copier" permettant de parcourir tous les onglets de mon classeur. Si la fonction ne trouve pas un onglet nommé "produit", il m'affiche le message MsgBox "Onglet absent"
Si non elle copie les données de la feuille nommée "donnees" et les colle dans l'onglet "produit".
Ensuite, je dois utiliser cette fonction dans une ou autres modules de mon programme.
Exemple: je veux utiliser la fonction crée précédemment pour copier les données
Dans la module1
Sub remplir onglet
Copier "donnees", "produit"
End Sub
Voici le lien du fichier: https://www.cjoint.com/?DExqI3jBucS
Merci beaucoup pour votre aide!
A voir également:
- Création d'une fonction Macro à utiliser dans une module
- Fonction si et - Guide
- Utiliser chromecast - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Creation compte gmail - Guide
- Utiliser une tablette comme ecran pc - Guide
1 réponse
Bonjour,
Pour parcourir les onglets:
Un conseil sers-toi de l'enregistreur de macro!
Pour parcourir les onglets:
Option Explicit Dim wsh As Worksheet Private Sub CommandButton1_Click() For Each wsh In ActiveWorkbook.Worksheets ' pour chaque feuille du classeur If wsh.Name = "produit" Then 'on vérifie le nom Sheets("données").Select Range("A1:G23").Select 'plage à adapter Selection.Copy Sheets("produit").Select Range("A1").Select 'à adapter ActiveSheet.Paste Else End If ' fin de la boucle si Next 'on passe à la feuille suivante End Sub
Un conseil sers-toi de l'enregistreur de macro!
Ça ne répond pas à la question !!! Et l'enregistreur de macro ne peut pas être employé pour ce qui est demandé. Sans parler des .Select qui ne sont pas vraiment nécessaires et alourdissent le code.
Pour obtenir ce qui est demandé, il faut passer à la procédure ou la fonction des paramètres :
Un exemple de procédure à mettre dans un module: