2eme question Excel du jour!

2eme question Excel du jour! - Logiciels - Windows & Software

Marsh Posté le 25-10-2005 à 12:17:13    


Bienvenue au niveau 2! :)
 
La deuxième question excel du jour est la suivante:
J'ai 3 cellules: sur la page 1, A1 et B1, et sur la page 2, B2.
Comment faire pour afficher l'info de A1 dans B2, uniquement si la cellule B1 n'est pas vide?
 
Par extention, l'idée, c'est que je cherche à remplir une page 2 (avec une mise en page propre), à partir du tableau synthétique établit dans la page 1: dans la cellule B2 en question, par exemple, je voudrais afficher des infos contenues dans les cellules de la colonne A de la page 1, mais uniquement si la valeur des cellules correspondantes existent.
Par exemple, si j'ai dans la page 1:
 
         A              B
1    Bonjour         1
2    Au revoir
3    Adieu            3
 
Dans B2 (page 2), je voudrais afficher:
Bonjour
Adieu
 
Est-ce possibleble?
 
Merci encore de votre aide!

Reply

Marsh Posté le 25-10-2005 à 12:17:13   

Reply

Marsh Posté le 25-10-2005 à 15:32:11    

J'ai trouvé comment afficher la valeur d'une cellule si une autre n'est pas vide. C'était facile en fait: il suffit de faire pour B2:
=IF(page1!B1;page1!A1;"" )
 
Par contre, je ne sais toujours pas comment afficher plusieurs résultats dans cette cellule B2: il me faudrait un truc du genre:
Afficher dans B2:
=IF(page1!B1;page1!A1;"" ) ET =IF(page1!B2;page1!A2;"" ) ET =IF(page1!B3;page1!A3;"" ) etc...
 
Quelqu'un a une idée?


Message édité par midge le 25-10-2005 à 15:32:46
Reply

Marsh Posté le 25-10-2005 à 16:12:20    


Bon, j'avance! :) Et je vous tiens au courant, on ne sait jamais...
En fait pour afficher plusieurs résultat, il suffit de les séparer par un & (il suffisait d'y penser!).
La formule en question devient donc:
=IF(page1!B1;page1!A1;"" )&IF(page1!B2;page1!A2;"" )
 
Et en mettant un " , " avec un & en plus, on sépare les résultats par une virgule.
 
Maintenant ce qu'il me faudrait c'est mettre un retour à la ligne à la place de la virgule! Quelqu'un à une idée de la manière dont on peut mettre ainsi en forme l'interieur d'une cellule excel? J'ai essayé le ^p et ca ne marche pas...
 
Aller les gars, courage, on va y arriver! :)

Reply

Marsh Posté le 25-10-2005 à 16:35:44    

et une bonne vieille macro qui te fait ça, ça irait pas ?


---------------
TReVoR - http://dev.arqendra.net - http://info.arqendra.net
Reply

Marsh Posté le 25-10-2005 à 16:40:32    

euh, si mais laquelle? :)

Reply

Marsh Posté le 25-10-2005 à 16:44:08    

bah une que tu fais toi-même bien sûr
 
si tu sais comment faire, c'est assez simple, il te suffit d'enregistrer une macro, tu fais une ou 2 manips, tu arrêtes l'enregistrement, et tu vois le code produit que tu adaptes à tes besoins
je ne fonctionne que comme ça pour les macros, on apprend "vite" et "utile" ainsi, pas besoin de livres


---------------
TReVoR - http://dev.arqendra.net - http://info.arqendra.net
Reply

Marsh Posté le 25-10-2005 à 17:02:39    

Pour aller à la ligne, le caractère est Chr(13) ou bien Chr(13) suivi de Chr(10) (retour chariot et line feed: CR+LF)
 
EDIT: ce sont les codes Ascii. Genre Chr(65) c'est A


Message édité par phosphorus68 le 25-10-2005 à 17:03:17
Reply

Marsh Posté le 25-10-2005 à 17:10:01    

OK je vais essayer ca, merci les gars!

Reply

Marsh Posté le 25-10-2005 à 17:20:36    


Hmm, impossible de rentrer le code ASCII dans une formule (ou alors je sais pas comment faire). Soit on le rentre sans "" et la il ne le reconnait pas, soit on le rentre avec les "" et la forcément il inscrit le Chr(13) en question.
Quand à la macro, je vais tenter mais j'ai peu d'espoir: l'exemple que j'ai donné est très simple, mais dans mon tableau ca prend beaucoup beaucoup plus d'opérations...
 
 

Reply

Marsh Posté le 27-10-2005 à 02:55:00    

Au temps (:o) pour moi, ce n'est pas la bonne syntaxe ET une fois corrigé ça ne fonctionne pas :/
 
Je pensais à ceci:

Citation :

=CONCATENER("ABC";CAR(13);CAR(10);"DEF" )


et ça affiche deux carrés blancs (mais "ABC
DEF" ici sur le Forum par copier/coller, retour à la ligne inclus  :D)
 
 
Bon sinon, avec une macro:

  • Se placer sur une cellule vide quelconque
  • menu Outils / Macros / Nouvelle macro / un nom genre "alleralaligne" et Créer
  • taper "A" "B" "C" Alt+Entrée "D" "E" "F" et Entrée pour valider
  • arrêter l'enregistrement de la macro avec le carré dans la barre d'outil qui était apparue
  • Appuyer sur Alt + F11 pour faire apparaître VBA et le code de la macro
  • La partie intéressante ressemble à: ActiveCell.FormulaR1C1 = "ABC" & Chr(10) & "DEF"
  • Reste à exploiter ça dans une macro plus complexe. Je verrais bien:

- garder ta formule en haut mais en remplaçant la virgule par un caractère vraiment bizarre ( ñ )
- pour ça, faire une macro qui enregistre un Edition / Remplacer tout où tu décides de remplacer tous les ñ par des £
- dans le code de la macro (Alt + F11 :o), il faut modifier ce £ dont on se fiche par Chr(10) (sans les guillemets car c'est c'est pas la chaîne de caractère C+h+r+(+1+0+) qu'on veut mais le caractère zou_à_la_ligne)
 
Ca donne:

Citation :

Sub Retouralaligne()
'
' Macro enregistrée le 27/10/2005 par ...
'
'
    Cells.Replace What:="ñ", Replacement:=Chr(10), LookAt:=xlPart, SearchOrder _
        :=xlByRows, MatchCase:=False
End Sub


 
Reste à associer ta macro à un bouton dans une barre d'outils perso et/ou à un raccourci-clavier inutilisé


Message édité par phosphorus68 le 27-10-2005 à 02:57:54
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed