Je suis en train de bricoler une base de données avec mes petites connaissances.
Le principe est que lorsque j'ajoute un patient dans ma feuille "DONNEES", je crée une fiche correspondant au patient en copiant la feuille "MODELE", et en inscrivant le numéro du patient dans la case verte de la fiche patient.
Le problème vient de ma macro censée nommer la feuille selon le numéro du patient inscrit dans la case verte.
Au moment ou je copie la feuille "MODELE" puis que je tente d'inscrire le numéro du patient dans la case verte, c'est la crise.
Quelqu'un peut-il me donner la solution svp ?
Et puisque j'y suis, n'auriez vous pas une macro permettant de classer les feuilles dans l'ordre croissant (et tolérant des feuilles avec des noms en lettres).
Je te propose de passer plutôt par une macro évenementielle "feuille change" au lieu de "sélection dans feuille change":
Code:
Private Sub Worksheet[B][COLOR="Red"]_Change[/COLOR][/B](ByVal Target As Range)
If Intersect(Target, Range("h2")) Is Nothing Then: Exit Sub
ActiveSheet.Name = Target[COLOR="Red"][B].Value[/B][/COLOR]
End Sub
Edit:
Et puisque j'y suis, n'auriez vous pas une macro permettant de classer les feuilles dans l'ordre croissant (et tolérant des feuilles avec des noms en lettres).
La feuille "Modèle" se masque pour éviter l'effacement non désiré
La feuille "Data" : Mettre les noms en B4 et suivant ET SANS VIDE, le muméro de dossier se met automatiquement
Un clique sur le GO et les feuilles se créent et se trient.
A+
Edition : Salut Skooby . Trop rapide le bougre
Edition 2 : Salut PJ
Je change le fichier, notre ami avait mis des Selection... un peu partout et cela créait des soucis à l'ouverture. J'aurais pu regarder partout...
edit: JC
ptit probleme :Feuille Donnees devenue Data -> bug a workbook_open
puis feuille Modele masquée (pas de nouveau client ?)
ensuite pas de Parkinson sur le bouton Go sinon plethore de feuilles
ça me fait penser que moi je n'ai pas protégé contre un N° deja pris, je regarde demain
Je n'ai pas tout résolu, et vos améliorations sont les bienvenues. Là où j'essaie de bricoler, vous m'apportez des solutions "macrotuesques" ! Mais je progresse petit à petit notamment grace à vous et ce forum.
Excel est vraiment un outil génial, Pierrejean tu m'avais déjà aidé pour une macro énormissime de répartition de différents produits dans un même lot avec écart maximal de 1 entre les lots... je m'en sers très souvent.
Bonjour à tous, je suis débutant sous vba. Je viens d'acheter un livre concernant la programmation des macros. Je cherche une macro permettant d'ouvrir une feuille (ou onglet) suivant le texte inscrit dans une cellule ou encore ajouter une feuille et qui se nomme comme le texte inscrit dans cette cellule.
Merci à tous de votre compréhension.
Voila une macro commentée qui devrait faire ce que tu souhaites
Code:
Sub test()
'on verifie tous les noms de feuille
For n = 1 To Sheets.Count
' Si une feuille a deja le nom qui est dans la cellule A2
'de la feuille1
If Sheets(n).Name = Sheets("Feuil1").Range("A2") Then
'on la selectionne
Sheets(n).Select
' et on sort de la macro
Exit Sub
End If
Next n
'si on n'est pas sorti apres avoir controlé toutes le feuilles
'on crée une nouvelle feuille que l'on nomme dans la foulée
Sheets.Add.Name = Range("A2")
End Sub
Fais une recherche sur les ouvrages de "John Walkenbach" qui est une référence pour excel, surnommé "Mr Spreadsheet" si ton livre ne te donne pas satisfaction.