Créer une nouvelle feuille VBA EXCEL

Résolu/Fermé
besoin_d'aide Messages postés 28 Date d'inscription jeudi 2 mai 2013 Statut Membre Dernière intervention 25 juin 2013 - 2 mai 2013 à 08:49
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 15 oct. 2014 à 08:29
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 :)

A voir également:

4 réponses

pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 743
Modifié par pijaku le 2/05/2013 à 09:37
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 :
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
0
besoin_d'aide Messages postés 28 Date d'inscription jeudi 2 mai 2013 Statut Membre Dernière intervention 25 juin 2013
2 mai 2013 à 09:57
Merci infiniment mais il me met erreur et débogage ..

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
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 743
2 mai 2013 à 10:00
Je ne sais pas si c'est plus clair Non non ça ne l'est pas.
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.
0
besoin_d'aide Messages postés 28 Date d'inscription jeudi 2 mai 2013 Statut Membre Dernière intervention 25 juin 2013
2 mai 2013 à 10:47
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 743
2 mai 2013 à 11:40
et que s'il trouve dans la colonne J quelqu'un sorti en retraite au mois M tu veux dire colonne H?
0
besoin_d'aide Messages postés 28 Date d'inscription jeudi 2 mai 2013 Statut Membre Dernière intervention 25 juin 2013
2 mai 2013 à 11:52
oui oui, colonne H :)
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 743
2 mai 2013 à 11:59
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"...
0
besoin_d'aide Messages postés 28 Date d'inscription jeudi 2 mai 2013 Statut Membre Dernière intervention 25 juin 2013
2 mai 2013 à 12:17
Cool, trop fort !

Mais comment faire pour ajouter par exemple une personne recrutée :)

Merciii

Cordialement
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 743
2 mai 2013 à 12:19
Suffit de l'ajouter dans la feuille du mois d'embauche.
A chaque fois que vous créez une feuille "mensuelle", partez de la feuille du mois en cours.
Exemple, pour créer mai, placez vous sur avril.
0
besoin_d'aide Messages postés 28 Date d'inscription jeudi 2 mai 2013 Statut Membre Dernière intervention 25 juin 2013
2 mai 2013 à 13:38
désolée, mais il ne me rajoute pas les gens embauchés je ne sais pas pourquoi.
et au delà de juin, il me met débogage...
merci
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 743
2 mai 2013 à 13:55
oui, pardon...
Essaye ceci :
https://www.cjoint.com/c/CEcn3xxg3eZ
0
besoin_d'aide Messages postés 28 Date d'inscription jeudi 2 mai 2013 Statut Membre Dernière intervention 25 juin 2013
2 mai 2013 à 14:10
toujours pas ;( il ne me rajoute pas les nouveaux recrus ...
Merci en tout cas pour ta patience
0
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
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 743
2 mai 2013 à 14:21
Bon. Je procède comme ceci :
1- je créé ma première feuille (janvier) à partir de la feuille "détails".
2- dans cette feuille janvier, j'ajoute des lignes,
3- à partir de cette feuille janvier, je créé la feuille février
Tous mes noms y compris ceux saisis en janvier apparaissent bien.....
0
besoin_d'aide Messages postés 28 Date d'inscription jeudi 2 mai 2013 Statut Membre Dernière intervention 25 juin 2013
2 mai 2013 à 14:33
okkk, je viens de comprendre :) merci.. Je ne croyais pas que tu les saisissais, mais je croyais qu'elle se rajoutais automatiquement :)
MERCI
0
besoin_d'aide Messages postés 28 Date d'inscription jeudi 2 mai 2013 Statut Membre Dernière intervention 25 juin 2013
2 mai 2013 à 14:35
une question un peu bébête :( : quand je copie le code sur mon fichier réel , ben ca marche pas .
je fais clique droit, visualiser code; et je copie le code de ta page mais en vain :s..
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 743
2 mai 2013 à 16:14
j'ai en effet fait quelques modifications...
Tu devrais donc faire l'inverse, copier les données de ton fichier réel vers celui que je t'ai refilé.
Gardes en une copie vierge pour l'année prochaine.
0
besoin_d'aide Messages postés 28 Date d'inscription jeudi 2 mai 2013 Statut Membre Dernière intervention 25 juin 2013
3 mai 2013 à 08:57
merci pijaku pour tout
0