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 -
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! :)
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:
- Afficher une cellule si elle est plus grande que zéro
- Remettre a zero un pc - Guide
- Excel cellule couleur si condition texte - Guide
- Aller à la ligne dans une cellule excel - Guide
- Proteger cellule excel - Guide
- Zero barré clavier ✓ - Forum Programmation
1 réponse
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
Pour lancer la macro : Onglet Developpeur puis Macro Selectionner la macro et Executer
Cdlmnt
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
Merci beaucoup, je vais la tester cette semaine au travail et je vous reviens!
Bonne journée!
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
Sheets(2).Range("A" & 16 + lg) = Sheets(1).Cells(x, y)