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 :

Demande d'aide pour sélection de date


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de eliniel
    Femme Profil pro
    Ingénieure Essais et validation
    Inscrit en
    Septembre 2014
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieure Essais et validation
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2014
    Messages : 115
    Par défaut Demande d'aide pour sélection de date
    Bonjour,
    je dois faire un programme qui dois pouvoir sélectionner des lignes selon un intervalle de temps et les copier sur une nouvelle feuille d'un même classeur.
    Et, si possible, ajuster l'intervalle de date aux valeurs les plus proches du fichier par rapport à celles rentrées par l'utilisateur et faire la moyenne de chaque colonne.

    J'ai donc créer une partie sur l'import des données qui fonctionne et ensuite j'ai défini les deux intervalles de dates sur des cellules de la feuille de calcul afin que l'utilisateur puisse remplir lui-même les bornes.
    Une nouvelle page est ensuite créée mais au moment de la recherche de valeur (par comparaison) la macro s'arrête.

    Le problème c'est qu'au niveau de la sélection des données pour voir si les valeurs de la ligne sont dans l'intervalle, le programme me dit:
    erreur '1004'
    erreur définie par l'application ou par l'objet.
    J'ai du mal à voir comment faire.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Il faudrait que tu mettes le code, car sans cela, personne ne pourra t'aider.

    Philippe

  3. #3
    Membre éclairé Avatar de eliniel
    Femme Profil pro
    Ingénieure Essais et validation
    Inscrit en
    Septembre 2014
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieure Essais et validation
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2014
    Messages : 115
    Par défaut
    Comme ceci?

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    Sub detectionPalier()
     
    Min = Cells(3, 1)
    Max = (4.1)
    Dim tolerance As Date
    Dim Palier As Variant
    ' PARAMETRES
        tolerance = Cells(1, 2) '%
     
    ' PALIERS
        Worksheets("resultats").Activate
     
        For Min = 1 To Max
     
        'Récupérer la valeur temporelle du palier dans la feuille resultat
            Palier = Worksheets("resultats").Cells(3, 1) And Worksheets("resultats").Cells(4, 1)
     
        'Ajout d'une feuille
            Worksheets.Add
            ActiveSheet.Name = Palier 'l'appeler Palier fera que la feuille portera le nom de l'intervalle
            j = 1
            i = 1
     
     
     'Là, on demande au programme de chercher les données dans toute la feuille.
     
            fin = Worksheets("donnees").Range(Min).Range(Max)       'donc sur la feuille "données", la colonne 1 jusqu'à la fin des valeurs
            While i < fin
     
        'On définit ici les bornes du palier
                inter = Worksheets("donnees").Range(Min, Max)
                cellule = Cells(i, 1)
     
                If cellule >= Min Then
                    ' CAS POSITIF
                    If (cellule <= (Max * (1 + tolerance / 100) + 0.02)) And (cellule >= (Min * (1 - tolerance / 100) - 0.02)) Then  'si la cellule est plus petite que... Alors
                        Worksheets(CStr(Palier)).Cells(j, 2) = cellule
                        j = j + 1
                    End If
                Else
                    ' CAS NEGATIF
                    If (cellule >= (Min * (1 + tolerance / 100) - 0.02)) And (cellule <= (Max * (1 - tolerance / 100) + 0.02)) Then
                        Worksheets(CStr(Palier)).Cells(j, 2) = cellule
                        j = j + 1
                    End If
                End If
     
                i = i + 1
     
            Wend

  4. #4
    Membre confirmé
    Homme Profil pro
    Ingénieur Logistique
    Inscrit en
    Octobre 2013
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Logistique
    Secteur : Transports

    Informations forums :
    Inscription : Octobre 2013
    Messages : 104
    Par défaut
    Ton erreur se situe sur quelle ligne ?

  5. #5
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut




    Je crois bien que la ligne n°16 est digne de JCVD : totalement aware !
    Devant déclencher une erreur en ligne n°20 lors de la seconde itération …

    Vérifier la valeur prise par la variable afin de savoir si c'est bien celle attendue et dans la négative,
    expliquer enfin ce qu'est censé réaliser la ligne n° 16 !

  6. #6
    Membre éclairé Avatar de eliniel
    Femme Profil pro
    Ingénieure Essais et validation
    Inscrit en
    Septembre 2014
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieure Essais et validation
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2014
    Messages : 115
    Par défaut
    Oui, je suis débutante en VBA et on va dire que je ne suis pas très douée. :s
    la ligne 16?
    Je voulais récupérer les deux bornes de mon intervalle avec cette ligne.

  7. #7
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut
    Bonjour, bonjour !

    Ici ce n'est ni un forum de génie ni de voyance : on a donc du mal à voir le code ‼
    Commencer donc par consulter les règles du forum …

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

Discussions similaires

  1. Demande d'aide pour un exercice
    Par IDE dans le forum C
    Réponses: 3
    Dernier message: 29/10/2005, 15h09
  2. [xsl][xalan]Demande d'aide pour un comptage
    Par HomoErectus dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 19/09/2005, 09h22
  3. Demande d'aide pour query difficile
    Par ericjean514 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 22/02/2005, 18h52
  4. Demande d'aide pour une requête
    Par arkzor dans le forum Requêtes
    Réponses: 3
    Dernier message: 28/12/2004, 02h40
  5. [TPW][cours]Demande d'aide pour finir un programme
    Par jf dans le forum Turbo Pascal
    Réponses: 21
    Dernier message: 16/06/2003, 18h10

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