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 :

Probleme de ligne a valeur nulle et d'operation


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2018
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2018
    Messages : 150
    Par défaut Probleme de ligne a valeur nulle et d'operation
    bonjour a nouveau

    j'ai un autre problème dont je viens de me rendre compte.

    comme vous voyez peut être sur la photo jointe sinon dessous) je dispose de 2 colonnes.
    Colonne A avec des valeurs, colonne B avec un temps format hh:mm:ss
    mon problème est que parfois il manque des valeurs que j'ai fait remplacer par des zéro au préalable. lors de ma vérification (c'est a dire une macro qui vérifie que entre 2 ligne il y a bien une seconde d’écart. si non il colore en jaune si plus d'une seconde il colore en orange)

    Nom : pb remplissage altitude.PNG
Affichages : 150
Taille : 22,2 Ko

    Je souhaite donc remplacer ces zéros par la moyenne de la valeur de la cellule précedente et suivante sauf que dans le cas ou il y a 2 cellule (ou plus) avec zero consecutive par exemple la cellule A4 = (A3+A5)/2 pour cela je dirais plutot facile
    mais pour la cas de la cellule A33 il me faudrait A33 = (A31+A35) /2
    Enfin pour courroner le tout, bien sur je ne sais jamais ou il va y avoir des ecarts. en gros j'envisage un code du type

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub remplissage_ALT()
    Application.ScreenUpdating = False
    Dim plage As Range, cel As Range
    Set plage = Range("A2:A" & Range("A" & Rows.Count).End(xlUp).Row)
    For Each cel In plage
    If cel = "0.00" Then cel = (Cells.Range(R - 1, C).Value - Cells.Range(R1, C).Value) / 2
    Next
    Application.ScreenUpdating = True
    End Sub
    mais bien sur ce ne marche pas de plus mon code ci dessou sne me donne aucun resultat a savoir ne me remplace aucune valeur?

    pourriez vous m'aider s'il vous plait?

    cordialement

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    Commence s'il te plait par préciser la propriété considérée.
    Tel n'est pas le cas de Cel (définie comme range) dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If cel = "0.00" Then cel = (Cells.Range(R - 1, C).Value - Cells.Range(R1, C).Value) / 2
    En te rappelant que si la valeur de cel (donc sa propriété Value) est 0, elle est 0, même si "0,00" (au demeurant une chaîne de caractères) est affiché dans la cellule concernée

    Je sais par ailleurs que VBA est d'une grande tolérance, mais sa tolérance peut parfois jouer des tours. On ne saurait assez insister sur la nécessité de ne pas profiter de sa tolérance et de se montrer très précis dans l'écriture du code.
    Par exemple ici :
    In Plage quoi ? ses cellules ? -->> on le dit alors clairement à VBA

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2018
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2018
    Messages : 150
    Par défaut
    Bonjour unparia,

    j'ai peur de pas vous comprendre ! cela fait juste 3 mois que je me suis mis sur VBA et je ne maîtrise pas tout

  4. #4
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    j'ai peur de pas vous comprendre ! cela fait juste 3 mois que je me suis mis sur VBA et je ne paitrise pas tout
    il ne s'agit pas là de "tout", mais de l'indispensable -->>
    écris donc ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim plage As Range
    Set plage = Range("A1")
    msgbox plage.
    que se passe-t-il à la frappe du "." sur la dernière ligne ? -->> vba attend logiquement un choix parmi ses propositions.

Discussions similaires

  1. [C#] Probleme de lecture de valeur nulle
    Par kenzo080 dans le forum ASP.NET
    Réponses: 7
    Dernier message: 25/10/2010, 16h58
  2. Probleme validateur et valeur null
    Par drim dans le forum JSF
    Réponses: 2
    Dernier message: 17/03/2008, 09h26
  3. Probleme Resultset et valeur NULL dans la bdd
    Par banania dans le forum JDBC
    Réponses: 4
    Dernier message: 18/04/2007, 12h54
  4. Probleme de requete SQL avec la valeur NULL
    Par samyghan dans le forum Installation
    Réponses: 8
    Dernier message: 12/03/2006, 17h24
  5. Sql Server Express - Probleme index unique et valeurs null
    Par Fayoul dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 17/02/2006, 17h22

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