VBA Excel - macro création de feuille - VB/VBA/VBS - Programmation
Marsh Posté le 29-06-2006 à 16:30:34
Ca doit passer
question 1 :
CreerFeuille = true
For Each ff In Worksheets
if ff.Name = <nom de ta feuille> then CreerFeuille=false
Next
If creerFeuille then
Sheets.Add after:=Sheets(Worksheets.Count)Sheets
(Worksheets.Count).Name = txNomVoiture.Value
end if
Question 2
SupprimerFeuille = False
For Each ff In Worksheets
if ff.Name = <nom de ta feuille> then SupprimerFeuille=True
Next
If SupprimerFeuille then
Sheets(txNomVoiture.Value).Select
ActiveWindow.Selected
Sheets.DeleteSheets("Récap" ).Select
end if
Marsh Posté le 29-06-2006 à 16:31:09
pour les deux questions, tu intercalles une boucle test sur l'existance ou non d'une feuille portant l nom en question =)
Marsh Posté le 29-06-2006 à 16:33:47
Oups...le message...j'ai oublié..il faut ajouter
Question 1
Ajouter un else (du if creerfeuille)
else
msgbox("Feuille " & txNomVoiture.Value & " dèjà créée" )
Question 2
Ajouter un else (du if Supprimerfeuille)
else
msgbox("Feuille " & txNomVoiture.Value & " dèjà supprimée" )
Marsh Posté le 06-07-2007 à 15:22:11
Bonjour
j'aurais besoin d'aide sur un problème un peu semblable, mais rien n'est encore programmé.
Dans un dossier XLS, à partir d'une feuille Menu que l'on remplit soi-même (3 colonnes : un numéro, un nom et une description), je souhaite pouvoir générer autant de feuilles qu'il y a de numéros et que les feuilles en question soient toutes selon un modèle précis et qu'elles aient comme nom le numéro.
Comme je pars de zéro mon problème est un peu plus complexe que le précédent.
D'avance merci pour vos conseils.
Marsh Posté le 06-07-2007 à 15:38:37
Ici on évite de partir de from scratch... donc faut filer un peu de code quand meme stp
Marsh Posté le 06-07-2007 à 17:07:47
Ben comme je suis débutant j'ai commencé avec les lignes de codes de Viper7 remasterisées par Paul Hood mais il y a des bugs que je ne sais pas débugger et je préférerais ne mettre qu'un seul bouton à la fin de la page avec une boucle for i from première ligne to dernière ligne (mais je ne sais pas comment on lui dit de trouver la dernière ligne)
Marsh Posté le 29-06-2006 à 16:22:37
J'ai un peu évolué dans mon apprentissage, je vais traiter problème par problème.
J'ai un classeur de base de donnée de voitures, composé d'une feuille récapitulant toutes les voitures et d'une feuille par voiture avec les détails.
Pour gérer les voitures, j'ai un userform qui a pour fonction d'ajouter, modifier et supprimer les voitures une a une. Ca fonctionne tres bien.
Après avoir rempli le formulaire pour ajouter une voiture, on peut cliquer sur un bouton (ayant pour nom bnNouvelleFeuilleVoiture) qui ajoute une nouvelle feuille ayant pour nom celui de la voiture c'est à dire la valeur de ce qu'il y a dans une textbox du formulaire (ici la textbox s'appelle txNomVoiture)
Voici le code du bouton :
C'est génial ca fonctionne mais si l'utilisateur clique une seconde fois, il y aura un message d'erreur VBA car il est impossible de créér deux fois la meme feuille (logique)
Question 1 /// Je cherche donc à faire un message du style "la page existe déjà" mais je n'arrive pas à le faire
J'ai aussi un bouton pour Supprimer la feuille :
Mais si l'utilisateur clique une seconde fois alors que la feuille n'existe plus, ca plante VBA.
Question 2 /// Comment faire pour qu'en cliquant, ca teste s'il y a deja la feuille et si oui : ca la supprime; si non : message : la feuille a déja été supprimée?