Excel 2007...

Fermé
Didou - Modifié par Didou le 7/04/2010 à 22:47
 Didou - 9 avril 2010 à 09:30
Bonjour à tous,

J'utilise excel depuis de nombreuses
années mais n'ai jamais eu le temps de vraiment me pencher sur les
fonctionnalités visual basic et macro...
Aujourd'hui, je dois créer un fichier dans lequel les feuilles seront liées
soit par des listes déroulante soit par des formules.
C'est pour obtenir quelque chose de simple à utiliser que je vous demande
votre aide...

Premier problème (j'imagine que vous allez vous dire que je suis nulle...) :
Feuille 1 - Colonne A - Nommée "AAA" pour la plage A2:A7
Dans A1 le titre
De A2 à A5 des données saisies
Dans A6 une étoile *
Dans A7 un total
Quel code utiliser pour qu'une ligne s'insère Entre A6 et A7 (et deviendrait
donc A7) avec un * dans A si j'écrit quelque chose dans A6 à la place de * ??
L'insertion avant A7 va-t'elle automatiquement renommer "AAA" pour la plage
A2:A8 ?

Deuxième problème :
Feuille 1 - Colonne A - Nommée "AAA" pour la plage A2:A7
Dans A1 le titre
De A2 à A5 des données saisies (par exemple des types de produits)
Feuille 1 - Colonne B - Nommée "BBB" pour la plage A2:A7
De A2 à A5 des données saisies (par exemple des sous types de produits)
A2 et A3 sont identiques
Mais B2 et B3 sont différents
Dans feuille 2 - A1 est une liste déroulante de AAA
Dans feuille 2 - B1 est une liste déroulante de BBB mais n'incluant que ceux
correspondant au AAA choisi en A1
Est-ce possible ??? Comment faire ?

Heu voilà... j'ai pas mal a apprendre encore...
Merci pour votre aide précieuse.
Bonne soirée.
Didou
A voir également:

6 réponses

Je viens de m'apercevoir que j'ai poster ce message sur un forum pas forcément approprié...
Je vous pris de m'en excuser.
Merci d'avance pour votre aide.
Bonne soirée à vous.
0
Chris 94 Messages postés 50978 Date d'inscription mardi 8 janvier 2008 Statut Modérateur Dernière intervention 17 février 2023 7 334
8 avril 2010 à 01:44
Bonsoir,

Ta discussion vient d'être téléportée vers le forum "Bureautique" ;-)

Cordialement.
0
Merci ;-)
0
Raymond PENTIER Messages postés 58836 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 25 janvier 2025 17 276
Modifié par Raymond PENTIER le 8/04/2010 à 02:43
Bonjour Didou.
Oui, tu as raison : tu es nulle ! Mais qui ne l'a pas été à ses débuts ?
D'ailleurs des nuls, il en existe tellement qu'il y a un éditeur qui ne sort que des livres écrits pour eux seuls ...
Revenons à ton premier problème.
* Tu as donné le nom "AAA" à la plage de cellules A2:A7 ☻ c'est parfait ; tu n'es pas tombée dans l'erreur d'inclure le titre A1 dans la plage !
* A quoi servira l'étoile en A6 ? Je la crois inutile.
* Pourquoi un calcul dans une liste de données ? Le total en A7 doit être impérativement retiré.
☻ Ta plage "AAA" est maintenant réduite aux 4 cellules A2:A5
* Pour ajouter une nouvelle donnée, il faut insérer une cellule quelque part entre A2 et A5 ; jamais avant A2 ni après A6.
* Si tu respectes cela, ta plage "AAA" augmente automatiquement.
* Quand tu auras ajouté beaucoup de données, pense à faire un tri croissant, afin de faciliter la recherche d'une valeur de référence dans la liste déroulante.
Et à ce propos, ta phrase "un fichier dans lequel les feuilles seront liées
soit par des listes déroulante soit par des formules
" prête à confusion (faux-sens, dirait le prof de français) ☻ ce sont les cellules qui seront ainsi reliées, pas les feuilles.
Mais à bientôt pour la suite ...
0
Bonjour Raymond, et merci pour ta réponse.

Voici quelques réponses :
* Tu as donné le nom "AAA" à la plage de cellules A2:A7 ? c'est parfait ; tu n'es pas tombée dans l'erreur d'inclure le titre A1 dans la plage !
--> Je suis donc pas si nulle... lol
* A quoi servira l'étoile en A6 ? Je la crois inutile.
--> Je souhaite avoir cette ligne pour faire une macro qui insèrerai une ligne si * est remplacée par du texte
* Pourquoi un calcul dans une liste de données ? Le total en A7 doit être impérativement retiré.
--> Ce n'est pas un total global : c'est une formule qui me compte le nombre de données (il va y en avoir beaucoup et je voudrais pouvoir avoir des stat sur ces données) : cette ligne n'est pas supprimable
* Pour ajouter une nouvelle donnée, il faut insérer une cellule quelque part entre A2 et A5 ; jamais avant A2 ni après A6 :
--> Insérer une ligne, je sais faire, une cellule aussi... je souhaite que ce soit automatique et à un endroit précis.
* Quand tu auras ajouté beaucoup de données, pense à faire un tri croissant, afin de faciliter la recherche d'une valeur de référence dans la liste déroulante :
--> Pour le tri, j'ai une macro qui me tri automatiquement ma feuille à l'insertion de nouvelles données (ça je sais faire aussi)
Et à ce propos, ta phrase "un fichier dans lequel les feuilles seront liées
soit par des listes déroulante soit par des formules" prête à confusion (faux-sens, dirait le prof de français) ? ce sont les cellules qui seront ainsi reliées, pas les feuilles :
--> En fait la liaison d'une cellule permettra de lier de nombreuses autre cellules puisque des données s'incrémenterons seules avec la fonction recherche, c'est pour cela que j'avais indiquer liaison des feuilles.
Merci en tout cas pour ton aide.
Et puis si tu as d'autres idées n''hésite pas.
Didou

Et bonne retraite aux Antilles.
0
Raymond PENTIER Messages postés 58836 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 25 janvier 2025 17 276
8 avril 2010 à 18:54
Eh bien, chapeau ; tu m'as bien eu !
Pour quelqu'un qui se prétend nulle et qui demande une solution simple, voila-t-il pas que tu jongles avec les macros ! Alors comme je n'y connais rien, je retire tout ce que j'ai écrit, et qui s'adressait à une néophyte, et je cède ma place de conseiller à d'autres, plus compétents en matière de VBA ...
Cordialement.
0
Lol, j'avais quand même précisé que j'utilise excel depuis de nombreuses
années mais n'avais jamais eu le temps de vraiment me pencher sur les
fonctionnalités visual basic et macro...
Pour le moment je n'ai pas trouvé de solutions mais je ne désespère pas...
En tout cas c'est vraiment sympa d'avoir essayé de m'aider.
Merci encore.
Didou
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 250
8 avril 2010 à 19:44
Bonjour tout le monde,

Pour le 1) pas dit que ça réponde à ta problématique mais tu as la possibilité des listes gérées par excel qui ont (presque) exactement le fonctionnement que tu décris.
Ton titre en A1, tes données en A2:A5, ta formule en A6 (oui, lire A6 et plus d'*, elle reviendra toute seule)
Tu nommes A2:A5 pareil....

Tu sélectionnes A1:A5 et (sur excel 2003) menu 'données / listes... / créer une liste'. C'est fini, la zone de liste s'encadre en bleu.

Sur le titre tu as un filtre automatique avec possibilité de tris qui a été ajouté.
Maintenant si tu mets le curseur dans ta liste, s'insère automatiquement une cellule de saisie en A6 avec une * dedans (la revoilà).
La formule en A6 se retrouve en A7 et les formules faisant référence à A2:A5 s'étendront sur A2:A6
La plage nommée s'étend aussi, bien que tu aies inséré après la dernière valeur de la plage

D'ailleurs si ta formule en A6 était le nombre de valeur A2:A5 ça peut être géré aussi par la liste : clic-droit sur la liste et dans la liste déroulante qui apparait choisir 'liste / total', s'ajoute en fin de liste une cellule avec le nombre de valeurs de la liste.
Et si tu sélectionnes la cellule 'total', dans une liste déroulante tu peux choisir à la place somme, moyenne, min, ...

Si au moment de la déclaration de la liste tu avais sélectionné plusieurs colonnes c'est une ligne d'insertion que tu auras.

Un exemple que tu vois ce que ça donne et si ça vaut le coup de rechercher où c'est sur 2007.
exemple

eric
0
Bonsoir Eric et merci pour ta réponse.
J'ai ouvert le fichier (avec excel 2007) : aucune cellule ne s'ajoute quand je place le curseur sur la ligne.
Cette fonctionnalité de excel 2003 a certainement évolué avec 2007.
Merci en tout cas
bonsoir
Didou
0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 250
Modifié par eriiic le 8/04/2010 à 22:23
Ah, dommage qu'il n'y ait pas une compatibilité ascendante totale, cette fonctionnalité était bien pratique dans certains cas...

Une proposition en vba pour le 1) :
Dim cellsav As Range 
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If IsEmpty(cellsav) Then
        cellsav.Delete Shift:=xlUp
    ElseIf Target.Column = 1 And Target.Value = "*" Then
        Target.Insert Shift:=xlDown
        Set cellsav = Target.Offset(-1, 0)
    End If
End Sub

J'ai ajouté la suppression de l'insertion en cas de non saisie, supprime-la si ce n'était pas désiré.

Si tu désires insérer sur plusieurs colonnes ajoute .resize(1,n) devant .delete et .insert, n étant le nombre de colonnes impactées.

eric
0
Oki !!!
MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI ! :)
j'essais ce week-end et te tiens au courant.
MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI
Et encore MERCI
Didou
0