Reporter certaines cellules dans une autre feuille si la cellule voisine n'est pas vide

  • Auteur de la discussion nova.bt
  • Date de début

nova.bt

Nouveau membre
Bonjour à tous,

je ne connais que les fonctions de base en excel et la macro est pour moi un monde inconnu...c'est donc pour ça que j'aurai besoin de votre aide.
Je vais essayer d'expliquer mon problème à l'aide d'un exemple;
J'ai un tableau de ce type dans ma 1ere feuille excel

Colonne 1 Colonne 2
A 1
B
C 2.6
D
E 4

J'aurai aimé qu'automatiquement en feuille 2 un tableau soit rempli des valeurs de la colonne 1 si la case voisine de la colonne 2 n'est pas vide.
En bonus, j'aimerai que ces valeurs se rangent les unes à la suite des autres sans qu'il y ai d'espace entre elles..
pour continuer mon exemple en feuille 2 j'obtiendrai
A
C
E
Je ne sais pas si c'est faisable..
J'espère que ma demande est a peu près compréhensible

Merci à tous par avance
 

magellan

Modérâleur
Staff
Bonjour,

c'est tout à fait faisable, la problématique est alors d'appliquer soit une macro, soit une formule simple.

En gros, une formule simple aurait un peu la tête suivante
1° Tu peux faire un copier/coller avec liaison aux cellules de la feuille1
2° Donne un nom explicite à la feuille1 pour être plus propre et facile à manipuler
3° ma feuille1 dans l"exemple est nommée "page1"
Pour la première cellule j'ai mis cela
Code:
=SI(page1!B1<>"";page1!B1;"")
En gros, si la cellule B1 de la page1 n'est PAS vide, alors je mets la valeur, sinon je mets "vide" ("'")
A toi de voir si cela peut t'aider... tu peux aller plus loin ça n'est qu'un exemple de ce qui est faisable.
 

bilve

Habitué
Bonjour Nova!

Je vais compléter la solution de Magellan... avec plus de détails.

C'est vrai que ce n'est pas facile à expliquer et à comprendre sans avoir la feuille sous le nez. Mais, si j'ai bien compris, j'ai la solution à ton premier problème (afficher les cases valides): il faut utiliser la fonction "SI" qui permet d'afficher une réponse ou une autre selon une condition. Si tu utilises une version d'Excel en anglais, la fonction devrait s'appeler "IF".

J'utilise Open Office, un équivalent gratuit d'Excel, mais je pense que les formule sont les mêmes. Si ma réponse te semble sensée, mais si rien ne marche, c'est qu'Excel utilise des formulations légèrement différentes, dans ce cas il te faudra consulter leur aide intégrée pour avoir les bons détails, moi je te fourni juste le principe de base.

Dans une case de la deuxième feuille tu tapes la formule "=SI(Feuille1.B1="";"";Feuille1.A1)" puis tu répètes l'opération sur autant de cases suivantes que nécessaire pour avoir la même longueur que la liste de tes données d'origine.
Astuces pour les débutants:
Pour ne pas avoir à taper l'adresse d'une case (c'est long et il y a le risque de se tromper) il suffit de cliquer sur la case visée: son adresse s'insère directement dans la formule que tu tapes.
Pour répéter la formule rapidement sur les cases suivantes, sélectionne la case où il y a la formule, clique sur l'angle inférieur droit de la case (il y a un petit carré dans l'épaisseur de trait) et, sans âcher le bouton de la souris, descend du nombre de cases à changer.


La fonction "SI" se rédige ainsi:
=si(condition;réponse1;réponse2)
N'oublie pas les parenthèses et les points-virgules.

La fonction "SI" fait faire un test. Dans notre exemple "Feuille1.B1="" " signifie "vérifie si le contenu de la case B1 de la feuille1 est bien vide".

Réponse1 est ce qu'il faut afficher (dans notre cas: ne rien afficher) si le test est vrai (dans notre cas, si le contenu de la case testée est bien vide).

Réponse2 est ce qu'il faut afficher (dans notre cas: le contenu de la case à gauche de la case testée) si le test est faux (dans notre cas, si le contenu de la case testée n'est pas vide).

J'ai testé chez moi, ça marche.

Pour ton deuxième problème (faire disparaitre les lignes vides), tout ce que j'ai à te proposer, c'est de "trier" les données par ordre croissant. Cela va les classer de la plus petite à la plus grande (et donc modifier leur ordre!) et rejeter les cases vides en fin de liste.
Pour "trier", il faut d'abord sélectionner toutes les cases concernées, puis dans la barre d'outils cliquer sur l'icone de "tri croissant". Cette commande se trouve aussi dans la barre des menus (chez moi, c'est sous le menu DONNÉES).

Tout ça doit paraitre bien confus, mais ça prendra tout son sens devant la feuille de calcul.
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 098
Messages
6 717 060
Membres
1 586 285
Dernier membre
LeFront
Partager cette page
Haut