Créer une nouvelle feuille VBA EXCEL
Résolu
besoin_d'aide
Messages postés
30
Statut
Membre
-
pijaku Messages postés 13513 Statut Modérateur -
pijaku Messages postés 13513 Statut Modérateur -
Bonjour,
Cela fait plusieurs jours que je galère avec mon projet, et voilà je me suis décidée à vous poser la question.
Je suis nulle en VBA, j'ai commencé une formation mais c'est 700 page et plus et ca me prendra du temps et mon travail est à rendre bientôt.. Donc si quelqu'un peut m'aider, j'en serai ravie.
Je voudrai une commande qui à chaque changement d'une celle A5 par exemple (la cellule A5 comprendra les mois ) , me crée une nouvelle feuille. mais si je reviens voir le mois précédent, c'est à dire si la feuille correspondante au mois existe, je n'ai pas besoin de double :s...
Je voudrai aussi qu'elle me supprime une ligne dans une page donnée mais pas dans celle qui l'a précède .. J'espère que je n'étais pas trop ambiguë... Merci pour votre aide
Une personne en détresse :)
Cela fait plusieurs jours que je galère avec mon projet, et voilà je me suis décidée à vous poser la question.
Je suis nulle en VBA, j'ai commencé une formation mais c'est 700 page et plus et ca me prendra du temps et mon travail est à rendre bientôt.. Donc si quelqu'un peut m'aider, j'en serai ravie.
Je voudrai une commande qui à chaque changement d'une celle A5 par exemple (la cellule A5 comprendra les mois ) , me crée une nouvelle feuille. mais si je reviens voir le mois précédent, c'est à dire si la feuille correspondante au mois existe, je n'ai pas besoin de double :s...
Je voudrai aussi qu'elle me supprime une ligne dans une page donnée mais pas dans celle qui l'a précède .. J'espère que je n'étais pas trop ambiguë... Merci pour votre aide
Une personne en détresse :)
A voir également:
- Créer une feuille vba
- Comment créer un groupe whatsapp - Guide
- Créer un compte google - Guide
- Créer une adresse hotmail - Guide
- Créer un lien pour partager des photos - Guide
- Créer une liste déroulante excel - Guide
4 réponses
Bonjour,
Donc, avant de créer une nouvelle feuille, il convient de vérifier si elle existe.
Pour cela, demandons à Bbil une petite fonction toute prête :
Ensuite, tu veux une macro automatique qui se déclenche au changement de contenu d'une cellule.
Il nous faut donc utiliser, dans le module de la feuille concernée, l'événement Change :
1- clic droit sur l'onglet de la feuille concernée,
2- Visualiser le code,
3- copier coller ce code :
Quant au reste : Je voudrai aussi qu'elle me supprime une ligne dans une page donnée mais pas dans celle qui l'a précède j'ai pas compris. En effet, lorsque l'on supprime une ligne dans une feuille, on ne la supprime que là, pas dans une autre..... Tu dis!
Cordialement,
Franck P
Donc, avant de créer une nouvelle feuille, il convient de vérifier si elle existe.
Pour cela, demandons à Bbil une petite fonction toute prête :
Function FeuilleExiste(wk As Workbook, stFeuille) As Boolean On Error Resume Next FeuilleExiste = Not (wk.Sheets(stFeuille) Is Nothing) End Function
Ensuite, tu veux une macro automatique qui se déclenche au changement de contenu d'une cellule.
Il nous faut donc utiliser, dans le module de la feuille concernée, l'événement Change :
1- clic droit sur l'onglet de la feuille concernée,
2- Visualiser le code,
3- copier coller ce code :
Private Sub Worksheet_Change(ByVal Target As Range) 'Si la cellule changeante n'est pas la A5, on quitte la procédure If Target.Address <> "$A$5" Then Exit Sub 'Si la feuille n'existe pas If Not FeuilleExiste(ThisWorkbook, Target.Value) Then 'on l'ajoute Sheets.Add 'on la renomme ActiveSheet.Name = Target.Value End If End Sub 'On y ajoute la fonction de Bbil : Function FeuilleExiste(wk As Workbook, stFeuille) As Boolean On Error Resume Next FeuilleExiste = Not (wk.Sheets(stFeuille) Is Nothing) End Function
Quant au reste : Je voudrai aussi qu'elle me supprime une ligne dans une page donnée mais pas dans celle qui l'a précède j'ai pas compris. En effet, lorsque l'on supprime une ligne dans une feuille, on ne la supprime que là, pas dans une autre..... Tu dis!
Cordialement,
Franck P
regarde ceci : https://www.cjoint.com/c/CEcl7oWAbNK
pour remplir la liste des mois, il faut changer de feuille et revenir sur la feuille "Détails"...
pour remplir la liste des mois, il faut changer de feuille et revenir sur la feuille "Détails"...
Cool, trop fort !
Mais comment faire pour ajouter par exemple une personne recrutée :)
Merciii
Cordialement
Mais comment faire pour ajouter par exemple une personne recrutée :)
Merciii
Cordialement
Bonjour,
j'ai une feuille Excel sur laquelle est détaillée les information concernant les projets; quel langage VBA faut-il pour avoir une boite de dialogue permettant de saisir le code projet par lequel une nouvelle feuille est créée automatiquement avec les données concernant le projet ayant le code saisi (la base contient le code projet, son nom, date de début, responsable,...etc).
Merci d'avance
j'ai une feuille Excel sur laquelle est détaillée les information concernant les projets; quel langage VBA faut-il pour avoir une boite de dialogue permettant de saisir le code projet par lequel une nouvelle feuille est créée automatiquement avec les données concernant le projet ayant le code saisi (la base contient le code projet, son nom, date de début, responsable,...etc).
Merci d'avance
En fait, Voilà ce que je veux faire:
J'ai une feuille concernant les salariés que j'ai nommée "détails" ..
J'ai crée un bouton A 5 avec les différents mois, je veux qu'à chaque mois, il me crée une nouvelle base de salariés (c'est-à-dire qu'il me copie l'ancienne base) , et que s'il trouve dans la colonne J quelqu'un sorti en retraite au mois M, qu'il me supprime sa ligne dans le mois qui suit.
J'ai aussi une feuille pour les gens qui seront recrutés, donc je voudrai qu'il me les injecte dans le mois correspondant.
Je ne sais pas si c'est plus clair... Merci pour ta réponse
Cordialement
Peux tu anonymiser ton fichier et nous le faire passer ici en utilisant : https://www.cjoint.com/
Tu va sur ce site créer un lien vers ton fichier et reviens coller ce lien dans une réponse.
Voilà merci :)