[VBA + Fonction] Excel. Problème
Résolu
Darkam1
Messages postés
170
Date d'inscription
Statut
Membre
Dernière intervention
-
pijaku Messages postés 12263 Date d'inscription Statut Modérateur Dernière intervention -
pijaku Messages postés 12263 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
J'expose mon problème sous Excel est plus particulièrement sous VBA. J'ai créé une macro sous VBA permettant via une Inputbox de générer deux types de feuilles
Ma première feuille s'appelle Entreprise :
Ma deuxième feuille s'appelle Badges :
Cette macro permet via ses deux feuilles d'exemple de générer plusieurs feuilles (dépendant du nombre d'entreprises que veut saisir l'utilisateur de cette macro).
Une entreprise = Une feuille.
Sur la première feuille « Entreprise » quand je saisis des données dans les cellules A1 A2; qui eux correspondent à : Prénom, Nom, Date, etc..
Ses données la sont inscrites sur la deuxième feuille « Badge » via une formule = Entreprise !B1
« J'ai donné des noms à chaque feuille » permettant cette formule.
Le problème est que quand je génère ses feuilles , mes fonctions ne fonctionnent plus, car a chaque fois que je génère une feuille entreprise : celle-ci ce nomme Entreprise1. De plus sur cette feuille est inscrit une fonction en D5 permettant de remplir un champ Entreprise qui dès rempli va modifier le nom de la feuille Entreprise (1). Si je saisis en D5 : Entreprise Test, le nom de la feuille se nommera automatiquement : Entreprise Test.
Le problème que j'expose aujourd'hui vient de la formule = !Entreprise1 :B1. En effet cette formule ne se change pas quand je génère des nouvelles feuilles ; celle-ci permettant de copier les données saisies dans la feuille Entreprise (1) vers la fiche Badge.
Je voudrais donc savoir s'il était possible quand je génère une feuille et que je renomme celle-ci, les formules en A1 A2 A3 soit aussi pris en compte dû au nouveau nom de cette page.
Quelqu'un aurait-il une solution ?
Amicalement
J'expose mon problème sous Excel est plus particulièrement sous VBA. J'ai créé une macro sous VBA permettant via une Inputbox de générer deux types de feuilles
Ma première feuille s'appelle Entreprise :
Ma deuxième feuille s'appelle Badges :
Cette macro permet via ses deux feuilles d'exemple de générer plusieurs feuilles (dépendant du nombre d'entreprises que veut saisir l'utilisateur de cette macro).
Une entreprise = Une feuille.
Sur la première feuille « Entreprise » quand je saisis des données dans les cellules A1 A2; qui eux correspondent à : Prénom, Nom, Date, etc..
Ses données la sont inscrites sur la deuxième feuille « Badge » via une formule = Entreprise !B1
« J'ai donné des noms à chaque feuille » permettant cette formule.
Le problème est que quand je génère ses feuilles , mes fonctions ne fonctionnent plus, car a chaque fois que je génère une feuille entreprise : celle-ci ce nomme Entreprise1. De plus sur cette feuille est inscrit une fonction en D5 permettant de remplir un champ Entreprise qui dès rempli va modifier le nom de la feuille Entreprise (1). Si je saisis en D5 : Entreprise Test, le nom de la feuille se nommera automatiquement : Entreprise Test.
Le problème que j'expose aujourd'hui vient de la formule = !Entreprise1 :B1. En effet cette formule ne se change pas quand je génère des nouvelles feuilles ; celle-ci permettant de copier les données saisies dans la feuille Entreprise (1) vers la fiche Badge.
Je voudrais donc savoir s'il était possible quand je génère une feuille et que je renomme celle-ci, les formules en A1 A2 A3 soit aussi pris en compte dû au nouveau nom de cette page.
Quelqu'un aurait-il une solution ?
Amicalement
A voir également:
- [VBA + Fonction] Excel. Problème
- Fonction si et excel - Guide
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Fonction moyenne excel - Guide
- Déplacer colonne excel - Guide
regarde du côté de la formule =INDIRECT() qui te permettra, avec le nom de la feuille saisit dans une cellule, de faire ce que tu veux...
Petite question, te souviens tu le code en VBA que tu m'as donné ?
Private Sub Worksheet_Change(ByVal Target As Range)
If ActiveSheet.Name = "Entreprise" Then Exit Sub
If Target.Address <> "$B$3" Then Exit Sub
If Target.Value = "" Then Exit Sub
If FeuilleExiste(ThisWorkbook, Target.Value) Then
MsgBox "La feuille " & Target.Value & " existe déjà"
Target.Value = ""
Target.Select
Exit Sub
Else
ActiveSheet.Name = Target.Value
End If
End Sub
J'ai voulu l'appliquer sur ma feuille Badges en modifiant " If Target.Address <> "$V$3" Then Exit Sub (la ou je voudrai que la saisie modifie le nom de la feuille). Mais cela ne fonctionne pas.
Ai-je loupé quelque chose ?