Aide Excel 2003

Fermé
vodkaramel Messages postés 8 Date d'inscription mardi 15 janvier 2008 Statut Membre Dernière intervention 14 août 2009 - 2 juil. 2009 à 10:34
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 - 2 juil. 2009 à 18:00
Bonjour,
Je travaille actuellement sur un tableur assez complexe sur Excel et j'aimerais savoir deux choses qui m'aideraient considérablement :

- 1) Comment faire pour incrémenter une cellule contenant un nombre en fonction de cellules remplies de mots ? Par exemple :
Ma colonne A contient dans chaque cellule des 0 ou des 1 selon si les cellules des lignes correspondantes est remplie. (A2 = 1 si B2, C2,...G2 contiennent un mot. Sinon A2 = 0)
Jusqu'à présent je le fais à la main, et j'aimerais l'automatiser pour gagner en productivité.
Et je voulais aussi savoir si il y avait un moyen de rajouter automatiquement une unité à la cellule A2 chaque fois que l'on "remplit" une cellule de la ligne 2 avec du contenu.

- 2) Augmenter la taille de police d'un nombre automatiquement au fur et à mesure que celui ci grandit (1 = petit ; 10 = tres gros). Un peu comme le principe d'un nuage de tags.

Je sais que ce sont des questions assez pointues et peu évidentes à saisir. Posez moi des questions si je n'ai pas été assez clair.

Merci
A voir également:

4 réponses

vodkaramel Messages postés 8 Date d'inscription mardi 15 janvier 2008 Statut Membre Dernière intervention 14 août 2009
2 juil. 2009 à 11:16
J'ai trouvé une des deux solutions, je la poste ici pour aider les personnes se posant la meme question :

1) C'est la fonction NBVAL(valeur1; valeur2;...) qui permet de faire ca.
Dans la cellule choisie, entrez cette fonction et entre parenthèse la plage sur laquelle vous voulez qu'elle s'applique.
Elle détermine combien de cellules ne sont pas vides dans la liste d'arguments indiquée.
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
2 juil. 2009 à 12:41
Bonjour,

un exemple en vba pour ton 2 :
Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Union([B3:B15], [D3:D15])) Is Nothing Then Exit Sub
    Select Case Target.Value
    Case ""
    Case Is < 5
        Target.Font.Size = 8
    Case Is < 10
        Target.Font.Size = 10
    Case Is < 15
        Target.Font.Size = 12
    Case Else
        Target.Font.Size = 16
    End Select
End Sub
à mettre dans le code de la feuille concernée...(clic-droit sur l'onglet de la feuille et 'Visualiser le code'

Union([B3:B15], [D3:D15]) : les plages concernées de la feuille que tu peux compléter
Tu peux mettre autant de Case Is que tu veux.
Tu pourrais aussi compléter avec un dégradé de couleur

eric


eric
0
vodkaramel Messages postés 8 Date d'inscription mardi 15 janvier 2008 Statut Membre Dernière intervention 14 août 2009
2 juil. 2009 à 14:26
Bonjour Eric,
Merci de ta réponse. J'ai changé le code source de la feuille en y collant ce que tu m'as envoyé, mais aucune modif... :(
0
pour le.2, il y a la mise en forme conditionnelle qui fait ça très bien non ?
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
2 juil. 2009 à 18:00
J'ai changé le code source de la feuille en y collant ce que tu m'as envoyé, mais aucune modif.
J'ai fait ça vite sans trop réfléchir...
Ca ne marche que pour les saisies manuelles, pas si le résultat d'une formule évolu.
Il faut faire la même chose mais sous forme de sub et le lancer (manuellement ou par un évènement) quand on veut une mise à jour.

Pour le.2, il y a la mise en forme conditionnelle qui fait ça très bien non ?
Oui, mais sur 2003 c'est limité à 3 MFC, ce qui fait 4 tailles possibles. C'est peut-être suffisant en effet.

eric
0