Copier la valeur d'une cellule pour nommer un onglet
Résolu/Fermé
Stéphane-Régis
Messages postés
14
Date d'inscription
dimanche 30 mars 2014
Statut
Membre
Dernière intervention
4 avril 2014
-
30 mars 2014 à 01:19
benkamran Messages postés 2 Date d'inscription jeudi 4 septembre 2014 Statut Membre Dernière intervention 12 septembre 2014 - 12 sept. 2014 à 05:35
benkamran Messages postés 2 Date d'inscription jeudi 4 septembre 2014 Statut Membre Dernière intervention 12 septembre 2014 - 12 sept. 2014 à 05:35
A voir également:
- Copier la valeur d'une cellule pour nommer un onglet
- Copier une vidéo youtube - Guide
- Aller à la ligne dans une cellule excel - Guide
- Rouvrir un onglet fermé - Guide
- Super copier - Télécharger - Gestion de fichiers
- Si cellule contient texte alors ✓ - Forum Excel
7 réponses
Stéphane-Régis
Messages postés
14
Date d'inscription
dimanche 30 mars 2014
Statut
Membre
Dernière intervention
4 avril 2014
1
30 mars 2014 à 14:37
30 mars 2014 à 14:37
Bonjour à vous
Je vous remercie d'avoir éclairé ma lanterne !
Et si je veux que le nom de l'onglet[Feuil2] se change avec un bouton placé dans l'onglet[Feuil1] ?
Je vous remercie d'avoir éclairé ma lanterne !
Et si je veux que le nom de l'onglet[Feuil2] se change avec un bouton placé dans l'onglet[Feuil1] ?
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 743
31 mars 2014 à 13:40
31 mars 2014 à 13:40
Bonjour,
Avec ce code :
Attention, ce code :
- ne fonctionne qu'une seule fois, puisque la feuille "Feuil2" est renommée
- ne fonctionne pas en cas de :
>cellule A1 vide
>cellule A1 contenant des caractères "interdits" par Microsoft
Donc, penser à faire quelques tests pour éviter les erreurs, du genre :
ou :
.....
Avec ce code :
Private Sub CommandButton1_Click() Sheets("Feuil2").Name = Sheets("Feuil1").Range("A1").Value End Sub
Attention, ce code :
- ne fonctionne qu'une seule fois, puisque la feuille "Feuil2" est renommée
- ne fonctionne pas en cas de :
>cellule A1 vide
>cellule A1 contenant des caractères "interdits" par Microsoft
Donc, penser à faire quelques tests pour éviter les erreurs, du genre :
If Sheets("Feuil1").Range("A1") = "" Then Exit Sub
ou :
If Instr(Sheets("Feuil1").Range("A1").Value, "/") > 0 Then Exit Sub
.....
Stéphane-Régis
Messages postés
14
Date d'inscription
dimanche 30 mars 2014
Statut
Membre
Dernière intervention
4 avril 2014
1
Modifié par pijaku le 31/03/2014 à 15:07
Modifié par pijaku le 31/03/2014 à 15:07
Bonjour pijaku,
Je vous remercie d'avoir répondu à ma demande.
Je viens de tester une autre syntaxe qui élimine tout souci pour le nom de l'onglet
Cette formule fonctionne très bien car j'ai pris le n° de la feuille au lieu de prendre son nom.
Je vous remercie d'avoir répondu à ma demande.
Je viens de tester une autre syntaxe qui élimine tout souci pour le nom de l'onglet
Private Sub CommandButton1_Click() Sheets(4).Name = Sheets(2).Range("K1").Value End Sub
Cette formule fonctionne très bien car j'ai pris le n° de la feuille au lieu de prendre son nom.
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 743
31 mars 2014 à 15:10
31 mars 2014 à 15:10
Oui.
Mais n'oublie pas mes autres conseils...
A+
Mais n'oublie pas mes autres conseils...
A+
Stéphane-Régis
Messages postés
14
Date d'inscription
dimanche 30 mars 2014
Statut
Membre
Dernière intervention
4 avril 2014
1
31 mars 2014 à 15:16
31 mars 2014 à 15:16
Je ne les oublierai pas. C'est promis !
Par contre j'aurai besoin de savoir comment on fait pour écrire dans la cellule du dessous si celle du dessus est déjà occupée. Je suis entrain de créer un répertoire.
Merci bcp pijaku
Par contre j'aurai besoin de savoir comment on fait pour écrire dans la cellule du dessous si celle du dessus est déjà occupée. Je suis entrain de créer un répertoire.
Merci bcp pijaku
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 743
31 mars 2014 à 15:25
31 mars 2014 à 15:25
Tu veux le numéro de la première ligne vide de la colonne J par exemple :
Avec ce numéro, il t'es aisé de "nommer" la cellule correspondante :
Dim DernLigne As Long DernLigne = Range("J" & Rows.Count).End(xlUp).Row + 1
Avec ce numéro, il t'es aisé de "nommer" la cellule correspondante :
Range("J" & DernLigne).Value =
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Stéphane-Régis
Messages postés
14
Date d'inscription
dimanche 30 mars 2014
Statut
Membre
Dernière intervention
4 avril 2014
1
Modifié par pijaku le 31/03/2014 à 15:44
Modifié par pijaku le 31/03/2014 à 15:44
Est-ce que je peux faire çà ?
Private Sub TextBox_Nom_Change() Dim DernLigne As Long DernLigne = Range("B" & Rows.Count).End(xlUp).Row + 1 Range("B3") = TextBox_Nom.Value End Sub
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 743
31 mars 2014 à 15:51
31 mars 2014 à 15:51
1- lorsque tu places des lignes de code sur le forum, il convient d'utiliser les "balises" code pour la mise en forme. Pour cela, jette un oeil par ici.
2- oui tu peux faire ça, mais ça ne fonctionnera pas.
Essaye plutôt ceci :
Cependant, à chaque changement dans ton textbox, la macro va s'exécuter. Donc, si tu veux inscrire "BONJOUR" dans ton textbox, le résultat, dans ta feuille sera :
en B3 : B
en B4 : BO
en B5 : BON
...
en B8 : BONJOU
en B9 : BONJOUR
Pour n'obtenir que BONJOUR en B3, tu devrais crée un CommandButton, qui, lors d'un clic, déclencherai ta procédure.
Comme ceci :
2- oui tu peux faire ça, mais ça ne fonctionnera pas.
Essaye plutôt ceci :
Private Sub TextBox_Nom_Change() Dim DernLigne As Long DernLigne = Range("B" & Rows.Count).End(xlUp).Row + 1 Range("B" & DernLigne).Value = TextBox_Nom.Value End Sub
Cependant, à chaque changement dans ton textbox, la macro va s'exécuter. Donc, si tu veux inscrire "BONJOUR" dans ton textbox, le résultat, dans ta feuille sera :
en B3 : B
en B4 : BO
en B5 : BON
...
en B8 : BONJOU
en B9 : BONJOUR
Pour n'obtenir que BONJOUR en B3, tu devrais crée un CommandButton, qui, lors d'un clic, déclencherai ta procédure.
Comme ceci :
Private Sub CommandButton1_Click() Dim DernLigne As Long DernLigne = Range("B" & Rows.Count).End(xlUp).Row + 1 Range("B" & DernLigne).Value = TextBox_Nom.Value End Sub
Stéphane-Régis
Messages postés
14
Date d'inscription
dimanche 30 mars 2014
Statut
Membre
Dernière intervention
4 avril 2014
1
31 mars 2014 à 16:15
31 mars 2014 à 16:15
J'ai besoin de pouvoir écrire sans être limité dans le nombre de caractères dans le TextBox.
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 743
31 mars 2014 à 16:35
31 mars 2014 à 16:35
Oui et?
Tu n'es pas limité.....
Tu n'es pas limité.....
Stéphane-Régis
Messages postés
14
Date d'inscription
dimanche 30 mars 2014
Statut
Membre
Dernière intervention
4 avril 2014
1
31 mars 2014 à 17:09
31 mars 2014 à 17:09
En fait ce que j'ai besoin c'est d'écrire "bonjour" dans une seule cellule et non pas comme tu l'as écrit plus haut.
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 743
1 avril 2014 à 07:53
1 avril 2014 à 07:53
Bonjour,
Oui j'avais bien compris.
Donc tu as plusieurs choix.
Soit tu ajoutes un bouton de commande qui servira à écrire "Bonjour" dans ta cellule lorsque tu l'auras saisi et après avoir cliqué sur ton bouton. Je t'ai déjà donné ce code.
Soit tu utilises, au lieu de l'événement Change() de ton TextBox un autre événement.
Exemples :
avec l'événement Exit :
!! ATTENTION : il te faut une "porte de sortie", donc au moins un autre contrôle qui puisse avoir le focus dans ton UserForm (ex : un second textbox)
avec l'événement KeyDown :
KeyDown = touche appuyée. Ici on va utiliser la touche "Entrée" (KeyCode = 13) pour valider notre saisie.
What Else?
Oui j'avais bien compris.
Donc tu as plusieurs choix.
Soit tu ajoutes un bouton de commande qui servira à écrire "Bonjour" dans ta cellule lorsque tu l'auras saisi et après avoir cliqué sur ton bouton. Je t'ai déjà donné ce code.
Soit tu utilises, au lieu de l'événement Change() de ton TextBox un autre événement.
Exemples :
avec l'événement Exit :
!! ATTENTION : il te faut une "porte de sortie", donc au moins un autre contrôle qui puisse avoir le focus dans ton UserForm (ex : un second textbox)
Private Sub TextBox_Nom_Exit(ByVal Cancel As MSForms.ReturnBoolean) Dim DernLigne As Long DernLigne = Range("B" & Rows.Count).End(xlUp).Row + 1 Range("B" & DernLigne).Value = TextBox_Nom.Value End Sub
avec l'événement KeyDown :
KeyDown = touche appuyée. Ici on va utiliser la touche "Entrée" (KeyCode = 13) pour valider notre saisie.
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) Dim DernLigne As Long 'Si la touche n'est pas la touche Entrée, on ne fait rien If KeyCode <> 13 Then Exit Sub DernLigne = Range("B" & Rows.Count).End(xlUp).Row + 1 Range("B" & DernLigne).Value = TextBox1.Value End Sub
What Else?
benkamran
Messages postés
2
Date d'inscription
jeudi 4 septembre 2014
Statut
Membre
Dernière intervention
12 septembre 2014
12 sept. 2014 à 05:35
12 sept. 2014 à 05:35
Bonjour,
je cherche moi aussi à nommer les onglets d'un fichier en fonction de la valeur d'une cellule dans chacun des onglets.
De plus, est ce que cela fonctionne si la valeur de la cellule qui donne le nom de l'onglet est le résultat d'une formule? (par ex la valeur donnée par une rechV ou autre)
Je sais que la solution est au dessus, mais malheureusement, je n'y comprend vraiment pas grand chose aux macros... Si quelqu'un avait l'amabilité et la patience de pouvoir détailler un peu plus le processus, ça serait vraiment sympa!
Merci d'avance, cordialement!
je cherche moi aussi à nommer les onglets d'un fichier en fonction de la valeur d'une cellule dans chacun des onglets.
De plus, est ce que cela fonctionne si la valeur de la cellule qui donne le nom de l'onglet est le résultat d'une formule? (par ex la valeur donnée par une rechV ou autre)
Je sais que la solution est au dessus, mais malheureusement, je n'y comprend vraiment pas grand chose aux macros... Si quelqu'un avait l'amabilité et la patience de pouvoir détailler un peu plus le processus, ça serait vraiment sympa!
Merci d'avance, cordialement!