Incapable d'utiliser cellule nommée
Fermé
Denis
-
Modifié le 12 mai 2019 à 18:37
via55 Messages postés 14502 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 9 décembre 2024 - 13 mai 2019 à 19:26
via55 Messages postés 14502 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 9 décembre 2024 - 13 mai 2019 à 19:26
A voir également:
- Incapable d'utiliser cellule nommée
- Utiliser chromecast - Guide
- Excel cellule couleur si condition texte - Guide
- Aller à la ligne dans une cellule excel - Guide
- Verrouiller cellule excel - Guide
- Comment utiliser l'ia - Accueil - Guide Intelligence artificielle
4 réponses
via55
Messages postés
14502
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
9 décembre 2024
2 736
Modifié le 12 mai 2019 à 23:58
Modifié le 12 mai 2019 à 23:58
Re
Ta syntaxe est bonne mais pas utilisable dans une fonction perso, il faut l'utiliser par le biais d’une macro
exemple :
https://mon-partage.fr/f/g27qQlqJ/
Pour l'exemple je fais lancer la macro par un bouton mais elle pourrait aussi être lancée à partir d'un événement comme l'entrée d'une valeur dans une cellule
Cdlmnt
Via
Ta syntaxe est bonne mais pas utilisable dans une fonction perso, il faut l'utiliser par le biais d’une macro
exemple :
https://mon-partage.fr/f/g27qQlqJ/
Pour l'exemple je fais lancer la macro par un bouton mais elle pourrait aussi être lancée à partir d'un événement comme l'entrée d'une valeur dans une cellule
Cdlmnt
Via
via55
Messages postés
14502
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
9 décembre 2024
2 736
12 mai 2019 à 19:03
12 mai 2019 à 19:03
Bonjour Denis
Pour appeler une feuille ce serait plutôt
Sheets("Feuil1").Range("Count_" & a).Value
Cdlmnt
Via
Pour appeler une feuille ce serait plutôt
Sheets("Feuil1").Range("Count_" & a).Value
Cdlmnt
Via
Bonjour, j'ai essayé avec le code suivant :
Malheureusement, ça ne fonctionne pas d'avantage. J'obtiens encore l'erreur
Merci bcp de vous intéressé à mon problème,
Cordialement,
Denis
Sheets("Feuil1").Range("Count_0").Value = Sheets("Feuil1").Range("Count_0").Value + 1
Malheureusement, ça ne fonctionne pas d'avantage. J'obtiens encore l'erreur
#valeur!, et ce même si je simplifie le problème en inscrivant directement le nom de la cellule nommée "Count_0".
Merci bcp de vous intéressé à mon problème,
Cordialement,
Denis
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
Modifié le 12 mai 2019 à 19:21
Modifié le 12 mai 2019 à 19:21
Une fonction perso renvoie la donnée dans la cellule où est inscrit l'intitulé de la fonction
par exemple en B1
=ma fonction(xx) renverra Le résultat en B1 et non dans ta cellule nommée
Ton exposé est très loin d'^tre clair
par exemple en B1
=ma fonction(xx) renverra Le résultat en B1 et non dans ta cellule nommée
Ton exposé est très loin d'^tre clair
Mettre le classeur sans données confidentielles en pièce jointe sur
https://mon-partage.fr
Dans lien de téléchargement
faire un clic droit- copier l’adresse du lien et le coller dans votre message en cours sur ccm
Oui Michel, désolé si cela n'était pas assez clair. Je vais rectifier :
En fait, la donnée que renvoie la fonction (elle-même) m'indiffère ; c'est plutôt l'opération à l'intérieur de la fonction que j'essaie de faire interagir avec des cellules nommées, pour faire s'incrémenter le décompte de chaque chiffre sorti à la Roulette.. et ça ne fonctionne pas du tout, quoi que j'essaie. (J'utilise seulement le retour de la fonction pour faire s'afficher si ça a fonctionné ou non, mais j'obtient constamment le retour
En fait, la donnée que renvoie la fonction (elle-même) m'indiffère ; c'est plutôt l'opération à l'intérieur de la fonction que j'essaie de faire interagir avec des cellules nommées, pour faire s'incrémenter le décompte de chaque chiffre sorti à la Roulette.. et ça ne fonctionne pas du tout, quoi que j'essaie. (J'utilise seulement le retour de la fonction pour faire s'afficher si ça a fonctionné ou non, mais j'obtient constamment le retour
#valeur!).
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 247
Modifié le 12 mai 2019 à 20:08
Modifié le 12 mai 2019 à 20:08
Bonjour,
Déposer le fichier xls sur cjoint.com et coller ici le lien fourni.
Là on ne voit que le sommet de l'iceberg.
Ca sera plus simple que de te poser 50 questions.
Et complète tes explications...
Au passage on se demande pourquoi tu t'es embêté à nommer tes cellules plutôt que d'utiliser Cells(lig,col) =
Et ces cellules contiennent bien avec un nombre et non en texte (un nombre doit s'aligner à droite sans forcer l'alignement)
eric
Déposer le fichier xls sur cjoint.com et coller ici le lien fourni.
Là on ne voit que le sommet de l'iceberg.
Ca sera plus simple que de te poser 50 questions.
Et complète tes explications...
Au passage on se demande pourquoi tu t'es embêté à nommer tes cellules plutôt que d'utiliser Cells(lig,col) =
Et ces cellules contiennent bien avec un nombre et non en texte (un nombre doit s'aligner à droite sans forcer l'alignement)
eric
Bonjour Éric,
Je croyais pourtant qu'une simple ligne de code pouvait être démystifiée.
1- Une colonne contient les sorties des chiffres de roulette.
2- La colonne voisine contient seulement l'appel de la fonction "num_cal(CelluleDeSortieDeChiffre)"
3- Une 3e colonne contient 37 cellules, nommées une à une "Count_0", "Count_1", Count_2".... jusqu'à "Count_36".
La fonction que j'ai programmé dans un module est la suivante :
Mais ça ne fonctionne pas. Et c'est aussi simple que ce que je viens d'écrire.
Je ne peux pas mettre en ligne mon programme.
Je demande seulement si ma syntaxe est bonne, alors que ce n'est QU'UNE SEULE feuille Excel. Incrémenter une simple valeur dans une cellule nommée ne devrait pas être si compliqué à résoudre...? Est-ce que ma syntaxe est bonne?
Je croyais pourtant qu'une simple ligne de code pouvait être démystifiée.
1- Une colonne contient les sorties des chiffres de roulette.
2- La colonne voisine contient seulement l'appel de la fonction "num_cal(CelluleDeSortieDeChiffre)"
3- Une 3e colonne contient 37 cellules, nommées une à une "Count_0", "Count_1", Count_2".... jusqu'à "Count_36".
La fonction que j'ai programmé dans un module est la suivante :
Public Function num_add(a As Variant) As Variant
If a >= 0 And a <= 36 Then
Feuil1.Range("Count_" & a).Value = Feuil1.Range("Count_" & a).Value + 1
num_add = "Fonctionne"
Else
MsgBox "Le chiffre n'est pas entre 0 et 36.", vbOKOnly, "Erreur d'entrée"
num_add = "Ne fonctionne pas"
End If
End Function
Mais ça ne fonctionne pas. Et c'est aussi simple que ce que je viens d'écrire.
Je ne peux pas mettre en ligne mon programme.
Je demande seulement si ma syntaxe est bonne, alors que ce n'est QU'UNE SEULE feuille Excel. Incrémenter une simple valeur dans une cellule nommée ne devrait pas être si compliqué à résoudre...? Est-ce que ma syntaxe est bonne?
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 247
Modifié le 13 mai 2019 à 00:03
Modifié le 13 mai 2019 à 00:03
Une fonction ne peut pas modifier son environnement, et donc une autre cellule comme te l'avait dit michel.
Elle retourne une valeur, c'est son seul rôle.
Donc par macro comme via.
Elle retourne une valeur, c'est son seul rôle.
Donc par macro comme via.
Merci beaucoup Ériiic de cette précision.
C'est un détail qui m'était inconnu (et qui est encore un peu difficile à cerner, je dois l'avouer). J'adore l'idée que l'on puisse passer des noms de cellules en tant que paramètres à une fonction, puisque la fonction peut être invoquée dans une formule... Mais d'en retirer un résultat singulier (uniquement dans la cellule où la fonction est invoquée) me fait me tordre les méninges... Je vais regarder ce que Via m'indique. Merci encore!
C'est un détail qui m'était inconnu (et qui est encore un peu difficile à cerner, je dois l'avouer). J'adore l'idée que l'on puisse passer des noms de cellules en tant que paramètres à une fonction, puisque la fonction peut être invoquée dans une formule... Mais d'en retirer un résultat singulier (uniquement dans la cellule où la fonction est invoquée) me fait me tordre les méninges... Je vais regarder ce que Via m'indique. Merci encore!
via55
Messages postés
14502
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
9 décembre 2024
2 736
13 mai 2019 à 19:26
13 mai 2019 à 19:26
Re,
Tu peux appeler une macro au changement de valeur dans une cellule avec l'instruction mise dans la worksheet de la feuille considérée dans l'éditeur VBA (page blanche ouverte au double-clic sur le nom de la feuille de l'arborescence à gauche de l'éditeur) :
Private Sub Worksheet_Change(ByVal Target As Range)
lignes de code à appliquer dans lesquelles tu appliquer des modifs à plusieurs cellules les unes après les autres
End Sub
Autre moyen, lancer la macro au double-clic dans une cellule avec cette fois cette macro à mettre dans le worksheet de la feuille :
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
lignes de code à appliquer dans lesquelles tu appliquer des modifs à plusieurs cellules les unes après les autres
End Sub
Cdlmnt
Via
Tu peux appeler une macro au changement de valeur dans une cellule avec l'instruction mise dans la worksheet de la feuille considérée dans l'éditeur VBA (page blanche ouverte au double-clic sur le nom de la feuille de l'arborescence à gauche de l'éditeur) :
Private Sub Worksheet_Change(ByVal Target As Range)
lignes de code à appliquer dans lesquelles tu appliquer des modifs à plusieurs cellules les unes après les autres
End Sub
Autre moyen, lancer la macro au double-clic dans une cellule avec cette fois cette macro à mettre dans le worksheet de la feuille :
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
lignes de code à appliquer dans lesquelles tu appliquer des modifs à plusieurs cellules les unes après les autres
End Sub
Cdlmnt
Via
13 mai 2019 à 01:00
Je regarderai ce fichier demain et reviendrai pour commenter mon avancée.
Cordialement,
Denis
Modifié le 13 mai 2019 à 18:37
J'aime bien la façon que la programmation VBA fonctionne, mais le fait qu'une fonction ne puisse servir qu'à un retour dans une cellule unique (là où la fonction est invoquée dans une cellule), me laisse perplexe...
...car ça m'apparaît tellement pratique de pouvoir passer comme paramètres des noms de cellules (ou même un Range) à une fonction...
Donc, j'imagine que mon problème maintenant se situe à comprendre comment pourrait-on passer de multiples paramètres à une Macro, de la même manière que je suis en train d'essayer de le faire avec une fonction(?).
Comment peut-on lancer une macro à partir de l'entrée d'une donnée dans une cellule? (Est-ce compliqué?) Et peut-on passer plusieurs paramètres à une macro (telle les noms de diverses cellules?).
Merci beaucoup pour toute cette aide. Il semble que ce soient des choses que j'ignore même en ayant lu un cartable d'Excel, et mon cerveau doit faire le tour de cette restriction* (macro vs. fonction) pour passer de "Débutant" à "intermédiaire". :)
Encore merci !
Cordialement,
Denis