IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Trouver des valeurs positives [XL-2016]


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Secrétaire
    Inscrit en
    Avril 2020
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Secrétaire
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2020
    Messages : 44
    Points : 36
    Points
    36
    Par défaut Trouver des valeurs positives
    Bonjour,

    Dans ma cellule G2 il y a cette formule : ='Tab Article'!Z2
    et pour chaque ligne de 2 à 100 la même formule incrémenté de 1 pour que les cellules de G2 à G100 soit les mêmes que celles de Z2 à Z100 de la feuille Tab Article

    Mon problème, dont je ne trouve pas de solution sur internet est que je n'arrive pas à trouver dans cette plage la première et la dernier cellule supérieure à zéro

    en effet que je passe par cells.find ou Set c = .Find(recherche, LookIn:=xlValues) If Not c Is Nothing Then prem = c.Address
    les valeurs qu'il me trouve sont 2 et 100
    Je pense que c'est parce qu'il ne regarde pas le résultat de la formule mais qu'il voit la formule donc la cellule n'est pas vide ou est supérieure à zéro

    Le but est de trouver le numéro de ligne de la première et la dernière cellule dont le résultat est supérieur à zéro.
    Exemple :
    1
    2
    3 1
    4
    5 3
    6
    7
    le résultat pour le numéro de ligne de la première cellule est 3 et pour la dernière est 5

    Le but est de limiter le nombre de passage de ma boucle.

    voici mon code sans la sortie de boucle
    Maintenant s'il y a moins de faire sans boucle je suis preneur également

    Merci pour votre aide

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    For y = 7 To 31 Step 6
    ' il faudrait mettre ici le code pour donner le début et la fin des valeurs de x
        For x = 2 To 100
            If Cells(x, y).Value2 = 0 Then GoTo suivant
            If Int(Cells(x, y).Value2) = Cells(x, y).Value2 Then
                Cells(x, y).Select
                With Selection
                    .HorizontalAlignment = xlRight
                    .IndentLevel = 3
                End With
                Selection.NumberFormat = "General"
            Else
                Cells(x, y).Select
                With Selection
                    .HorizontalAlignment = xlRight
                    .IndentLevel = 1
                End With
                Selection.NumberFormat = "0.00"
            End If
    suivant:
        Next x
    Next y

  2. #2
    Membre éprouvé
    Inscrit en
    Décembre 2002
    Messages
    801
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 801
    Points : 1 260
    Points
    1 260
    Par défaut
    Salut, teste ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    Sub test()
     
    Dim ws As Worksheet
    Dim rng As Range
    Dim cell As Range
    Dim firstCell As Range
    Dim lastCell As Range
     
    Set ws = ThisWorkbook.Sheets("Feuil1") ' Remplacez Feuil1 par le nom de votre feuille
    Set rng = ws.Range("G2:G100") ' Plage de cellules à vérifier
     
    For Each cell In rng
        If IsNumeric(cell.Value) And cell.Value > 0 Then
            If firstCell Is Nothing Then
                Set firstCell = cell
            Else
                Set lastCell = cell
            End If
        End If
    Next cell
     
    If Not firstCell Is Nothing And Not lastCell Is Nothing Then ' Si des cellules numériques ont été trouvées
        MsgBox "Première cellule : " & firstCell.Row
        MsgBox "Dernière cellule : " & lastCell.Row
    End If
     
     
    End Sub

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Secrétaire
    Inscrit en
    Avril 2020
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Secrétaire
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2020
    Messages : 44
    Points : 36
    Points
    36
    Par défaut
    Merci cela fonctionne

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] plot des valeurs positives seulement avec if ?
    Par nabilfib dans le forum MATLAB
    Réponses: 2
    Dernier message: 16/01/2013, 09h33
  2. trouver des valeurs
    Par Daniela dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 19/10/2012, 14h06
  3. Trouver des valeurs non uniques dans une table
    Par morbli dans le forum Langage SQL
    Réponses: 11
    Dernier message: 29/09/2011, 11h56
  4. [find] Trouver des valeurs dans un tableau de cellules
    Par Pierre845 dans le forum MATLAB
    Réponses: 5
    Dernier message: 22/01/2009, 10h52
  5. Trouver des valeurs dans un vecteur
    Par hollowdeadoss dans le forum MATLAB
    Réponses: 8
    Dernier message: 08/12/2008, 15h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo