comment récupérer la première valeur d'une colone

Y compris Power BI, Power Query et toute autre question en lien avec Excel
f
frayor
Jeune membre
Jeune membre
Messages : 16
Inscrit le : 19 janvier 2016
Version d'Excel : 2010

Message par frayor » 19 janvier 2016, 18:57

Bonjour,

Je souhaiterai créer une macro, qui me permettrai de récupérer la première valeur supérieur a zéros dans une colonne

Merci d’avance
Avatar du membre
oyobrans
Membre dévoué
Membre dévoué
Messages : 988
Appréciations reçues : 11
Inscrit le : 27 septembre 2013
Version d'Excel : 2016

Message par oyobrans » 19 janvier 2016, 19:39

Bonsoir,
Option Explicit
Public Sub valeur()
    Dim cell As Range
    For Each cell In Range("A2:A100")
        If cell.Value > 0 Then
            MsgBox "Première valeur positive : " & cell.Value
            Exit Sub
        End If
    Next
End Sub
Cordialement.

Aide-toi et l'ciel t'aidera...
[ GIF animé de Dave Whyte ]
f
frayor
Jeune membre
Jeune membre
Messages : 16
Inscrit le : 19 janvier 2016
Version d'Excel : 2010

Message par frayor » 20 janvier 2016, 10:09

Bonjour

Tout d abord merci pour ta réponse oyobrans

Mai je souhaiterai plus une formule qui permettent d afficher la valeur trouver dans une cellule définie.

Si possible.

Merci d avance

Ps :un bout de code que j ai fait mais qui ne permet pas de faire ce que je veux ,si une personne pouvez le modifier pour que cela fonctionne comme je veux se serait bien

Sub a ()

Sheets ("feuil2").select

Range ("e1:e21").end (xlup).select

Sélection. Copy

Sheets("feuil2").select
Range ("a4").select
Activesheet.paste

End sub
f
frayor
Jeune membre
Jeune membre
Messages : 16
Inscrit le : 19 janvier 2016
Version d'Excel : 2010

Message par frayor » 21 janvier 2016, 08:59

Pour êtres plus claire ce que je souhaiterais faire à l aide d'une macro:

Sur la feuille 3 , de la cellule C2 à C25,en partant du haut trouve moi la première valeur supérieure à 0 et copie la dans la cellule A1 de la feuille 3 .

Merci d avance pour vos réponses
Z
Zirak
Membre impliqué
Membre impliqué
Messages : 1'200
Inscrit le : 18 mai 2011
Version d'Excel : 2010 FR

Message par Zirak » 21 janvier 2016, 09:46

Bonjour,

Il n'y avait pas grand chose à modifier sur la proposition d'oyobrans :
Option Explicit
Public Sub valeur()
    Dim cell As Range
    For Each cell In Worksheets("feuil3").Range("C2:C25")
        If cell.Value > 0 Then
            Worksheets("feuil3").Range("A1") = cell.Value
            Exit Sub
        End If
    Next
End Sub
A méditer:

"Au fur et à mesure que vous connaissez les problèmes des autres, vous vous rendez compte que le votre n'est pas si grave."
f
frayor
Jeune membre
Jeune membre
Messages : 16
Inscrit le : 19 janvier 2016
Version d'Excel : 2010

Message par frayor » 21 janvier 2016, 10:41

Super merci Zirak

C'est ce que je rechercher

Comment fait tu pour inverser le sens de recherche (au lieu de commencer part le bas , commencer par la cellule du haut la recherche)
Z
Zirak
Membre impliqué
Membre impliqué
Messages : 1'200
Inscrit le : 18 mai 2011
Version d'Excel : 2010 FR

Message par Zirak » 21 janvier 2016, 10:53

Le code fourni doit déjà partir du haut, et tel qu'il est construit, il ne peut aller que de haut en bas, car on y écrit de faire le test pour chaque cellule de la plage C2:C25 (Excel part donc de la cellule C2, et passe à la suivante lors du passage sur "Next", jusqu'à C25).

Pour avoir une boucle pouvant aller de haut en bas ou de bas en haut, plutôt qu'une boucle For Each Next, il aurait fallu utiliser une simple boucle For Next.

De haut en bas :
For i = 2 to 25 
   'code
next i
De bas en haut :
For i = 25 to 2 step -1
   'code
next i
Cordialement.
A méditer:

"Au fur et à mesure que vous connaissez les problèmes des autres, vous vous rendez compte que le votre n'est pas si grave."
f
frayor
Jeune membre
Jeune membre
Messages : 16
Inscrit le : 19 janvier 2016
Version d'Excel : 2010

Message par frayor » 21 janvier 2016, 11:48

Merci

Sa ne marche pas chez moi

Si cela te dérange pas

Peux tu mettre la macro complète avec for i = 2 to 25 de dans que je voie mon erreur

S il te plait

Merci d avance
Z
Zirak
Membre impliqué
Membre impliqué
Messages : 1'200
Inscrit le : 18 mai 2011
Version d'Excel : 2010 FR

Message par Zirak » 21 janvier 2016, 11:55

Option Explicit
Public Sub valeur()
    Dim i as integer
    For i = 2 to 25
        If Cells(i, 3).Value > 0 Then
            Worksheets("feuil3").Range("A1") = Cells(i, 3).Value
            Exit Sub
        End If
    Next i
End Sub
Mais encore une fois, la version avec For Each va déjà de haut en bas.
A méditer:

"Au fur et à mesure que vous connaissez les problèmes des autres, vous vous rendez compte que le votre n'est pas si grave."
f
frayor
Jeune membre
Jeune membre
Messages : 16
Inscrit le : 19 janvier 2016
Version d'Excel : 2010

Message par frayor » 21 janvier 2016, 14:11

Super

Encore merci Zirak pour ta patience et toues tes réponses
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message