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 :

Condition VBA: générer les lignes manquantes sur un tableau


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Responsable des études
    Inscrit en
    Janvier 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Bâtiment

    Informations forums :
    Inscription : Janvier 2018
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Condition VBA: générer les lignes manquantes sur un tableau
    Bonjour,
    Je suis nouvelle sur ce forum et Je viens vers vous car je suis novice sur VBA et j'ai un problème sur un fichier :
    J'ai un fichier excel de 6 colonnes et 4151 lignes, avec des dates et des taux journaliers qui y correspondent.
    les taux journaliers ne sont pas diffusés les jours fériés et les week-ends.
    Les lignes manquantes contiennent la date dans la première colonne mais sur les autres j'ai "ND".
    Il faut donc générer es lignes des jours manquants. Les taux ajoutés seront une moyenne des taux qui les encadrent.
    J'ai essayé de faire une condition if colonne par colonne ( il faut le faire sur 5 colonnes en meme temps) mais je n'y arrive pas
    Est ce que vous pourriez m'aider?
    voici le code que j'ai écris, je suis sure qu'il est plein d'erreurs:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub Generer_Lignes_Manquantes()
     
    Dim q As Integer, k As Integer
     
    For k = 2 To 4151
    q = Range("B" & k).Value
    If q = 0 Then
    q = Application.Average(Range("B" & k - 1), Range("B" & k + 1))
    Else
    End If
    Next k
    End Sub
    merci d'avance pour votre aide!!!

  2. #2
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 141
    Points : 9 976
    Points
    9 976
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    je vois un autre problème (logique) en amont de ta difficulté (technique)

    comment tu gères le cas de deux jours consécutifs sans taux ?

  3. #3
    Nouveau Candidat au Club
    Femme Profil pro
    Responsable des études
    Inscrit en
    Janvier 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Bâtiment

    Informations forums :
    Inscription : Janvier 2018
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Merci pour ta réponse
    les deux jours du week end doivent contenir la moyenne des jours qui les encadrent, par exemple pour un jour j et j+1 du week end, je devrais avoir:
    Taux de j=Taux de j+1= moyenne(taux j-1;Taux de J+2)
    de plus, si c'est un week end c'est pour deux jours, et si c'est un jours férié j'ai une seule journée manquante.
    Je suis un peu perdue..
    Need help
    Merci

  4. #4
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 141
    Points : 9 976
    Points
    9 976
    Billets dans le blog
    5
    Par défaut
    Le problème est, certes, logique ... mais la résolution t'appartient et fait appel à la compétence métier, la nature des taux et ce que tu veux en faire.

    Si 1 jour manque : pas de souci
    Si plusieurs jours manquants : on fait la moyenne entre le taux J-1 et le prochain taux ? on recopie l'ancien taux tant qu'on a pas de taux J+1 ? Autre méthode ?

    Personne ne pourra y répondre à ta place, c'est seulement après ton propre arbitrage en la matière que nous pourrons t'aider à mettre le mécanisme en oeuvre

  5. #5
    Nouveau Candidat au Club
    Femme Profil pro
    Responsable des études
    Inscrit en
    Janvier 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Bâtiment

    Informations forums :
    Inscription : Janvier 2018
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Pour les deux jours du week end, respectivement j et j+1 je devrais avoir:
    Taux de j=Taux de j+1= moyenne(taux j-1;Taux de J+2)

Discussions similaires

  1. Deleter les lignes manquantes dans une Data
    Par manoir dans le forum SAS Base
    Réponses: 5
    Dernier message: 23/04/2009, 16h49
  2. Cacher les lignes à blanc sur un formulaire?
    Par mishkai dans le forum IHM
    Réponses: 1
    Dernier message: 08/08/2008, 12h03
  3. [VBA] Dupliquer les lignes
    Par toto92 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/10/2007, 10h25
  4. Réponses: 5
    Dernier message: 06/01/2007, 05h48
  5. Générer les lignes manquantes
    Par prophete3d dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 11/07/2006, 17h49

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