Afficher une cellule si elle est plus grande que zéro

Résolu
RachelMartel Messages postés 435 Date d'inscription   Statut Membre Dernière intervention   -  
RachelMartel Messages postés 435 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai une plage (C16:I23). Dans cette plage, certaines cellules sont remplis.

J'aimerais que dans une autre feuille, les valeurs entrées dans ces cellules se retrouvent une en dessous de l'autre, sans mettre les cellules vides.

Donc, si les cellules D18, F21 et H22 sont plus grande de zéro, je veux que les valeurs entrées se retrouvent dans A1, A2 et A3 sur mon autre feuille.

À part faire un "Si" trop long, je ne vois pas comment faire :(

Des idées?

Merci! :)

A voir également:

1 réponse

via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention   2 746
 
Bonsoir

Avec une petite macro

Faire ALt+F11 pour ouvrir l'éditeur VBA puis onglet Insertion et Module, copier et coller la macro suivante dans page vierge puis fermer l'éditeur

Sub transfert()
For y = 3 To 9 'boucle sur colonnes 3 à 9
For x = 16 To 23 ' boucle sur lignes 16 à 23
If Sheets(1).Cells(x, y) > 0 Then ' si valeur de la cellule en x y de la 1ere feuille du classeurest sup à 0
lg = lg + 1' incremente la variable pour la ligne de 1
Sheets(2).Range("A" & lg) = Sheets(1).Cells(x, y) ' copie la valeur en ligne A lg de la 2eme feuille 
End If
Next x
Next y
End Sub


Pour lancer la macro : Onglet Developpeur puis Macro Selectionner la macro et Executer

Cdlmnt
0
RachelMartel Messages postés 435 Date d'inscription   Statut Membre Dernière intervention   25
 
Bonjour,

Merci beaucoup, je vais la tester cette semaine au travail et je vous reviens!

Bonne journée!
0
RachelMartel Messages postés 435 Date d'inscription   Statut Membre Dernière intervention   25
 
Je suis présentement en train de faire des tests...
0
via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention   2 746 > RachelMartel Messages postés 435 Date d'inscription   Statut Membre Dernière intervention  
 
Re,

En début de macro tu déclare pour lg la valeur que tu veux comme ligne précédent la 1ere où commencer à copier, dans ton cas
lg=16 (à mettre avant le premier For)

Cdlmnt
0
RachelMartel Messages postés 435 Date d'inscription   Statut Membre Dernière intervention   25 > via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention  
 
Oui, j'y suis arrivé, c'est pour ça que j'ai changé mon commentaire en espérant qu'il ne soit pas vu :P Par contre, j'ai mis le 16 à un autre endroit :

Sheets(2).Range("A" & 16 + lg) = Sheets(1).Cells(x, y)
0
RachelMartel Messages postés 435 Date d'inscription   Statut Membre Dernière intervention   25
 
Merci :)
0