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 :

[VB-E]Modification de macro


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé Avatar de lolo_bob2
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 195
    Par défaut [VB-E]Modification de macro
    Bonjour à tous

    Voila j'ai un fichier excel avec 3 feuilles PRO01, PRO02 et Graphique
    Les feuilles PRO iront par la suite de 01 à 012

    J'ai une macro qui me permet de générer un graphique par reference, exemple pour la ref 1004286 j'obtiens bien un graphique mais pas commeje souhaiterait

    En fait en analysant les feuilles PRO01 j'ai remarqué que j'avais plusieurs fois la meme référence ici j'ai 2 fois la référence avec des temps réels différents
    Sur la feuille PRO02 j'ai 6 fois la même référence 1004286 avec des temps réel différents

    Comment puis je faire pour que j'ai tous les résulats pour ma référence et que le graphique soit généré

    Merci de votre aide

    Je joint un fichier texte pour que vous puissiez voir la macro

    A+
    Fichiers attachés Fichiers attachés

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    932
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 932
    Par défaut
    Hello,

    jcomprend pas trop ce que tu veux mais si tu veux trouver toutes les occurences d'une reference tu dois parcourir chaque ligne de la colonne, si elle vaut la reference qu'on recherche, tu la copie sur ta feuille où tu met ton graph (avec la valeur du temps à coté).

  3. #3
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Je ne vois pas d'autre solution que de créer un tableau d'adresses de tes références. Mais ce que je ne comprends pas c'est si tu as deux fois la même référence dans PRO01. Tu fais quoi dans ce cas là ? (enfin, à défaut d'y parvenir, tu voudrais faire quoi ? Plusieurs courbes dans un même graphe ? )

  4. #4
    Membre confirmé Avatar de lolo_bob2
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 195
    Par défaut
    Merci pour vos réponses

    Quand je trouve plusieurs fois la référence le but serais de créer une courbe. Ce que je veux c'est juste l'allure générale...

    Merci de votre aide car je bloque vraiment

    A+

  5. #5
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Quand je trouve plusieurs fois la référence le but serais de créer une courbe
    Comprends pas. Reformule l'ensemble de ton problème car là, il est difficile de t'aider.
    A+

  6. #6
    Membre confirmé Avatar de lolo_bob2
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 195
    Par défaut
    Je vais essayer d'être clair

    Si par exemple je trouve plusieurs fois la même référence sur lles pages PRO01 et PRO02...
    Je voudrais qu'un graphique soit créer je joint un exemple réalisé manuellement mais je voudrais que ceci soit fait automatiquement.

    Merci de votre aide car je pense que je suis pas lon de la solution...mais ou se trouve mon problème ?

    A+
    Fichiers attachés Fichiers attachés

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    932
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 932
    Par défaut
    coucou,

    ok donc à chaque apparition tu veux un point sur ton graph.

    et là t'arrive toujours pas à quoi faire? recuperer les données si un nom apparait plusieur fois sur une feuille?

  8. #8
    Membre confirmé Avatar de lolo_bob2
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 195
    Par défaut
    Hello

    Oui en fait mon problème c'est que j'arrive à recuperer 1 seul fois la référence alors que sur certaines feuilles elle y est plusieurs fois

    Je ne sais pas comment faire pour récuperer toutes les références et non pas une seule...
    Si tu fais le test avec la référence 1004286 et que tu lance la macro tu as qu'un resultat pour PRO01 ET PRO02 alors qu'il y en a 2 dans PRO01 et 6 dans PRO02

    Pouvez vous m'aider Merci beaucoup

    A+

  9. #9
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    J'ai regardé ton fichier et j'ai vu que tu récupérais les données de ton filtre dans une feuille, données que tu utilisais pour ton graphe.
    Manuellement il est effectivement possible de sélectionner les données filtrées. Malheureusement, par soft, CurrentRegion te donne la totalité de la plage de données et non seulement le résultat du filtre. J'ignore s'il me manque une connaissance, toujours est-il que je n'y suis jamais parvenu (VBA97, j'ignore ce qu'il en est des versions ultérieures)

    Quelques suggestions si tu as le même pb.
    Pour chaque feuille PROn
    - Parcourir ta feuille de données à la recherche de la référence
    - copier une à une la valeur de la colonne 6 (F) correspondante, dans ta feuille graphe (ainsi que le nom de la feuille correspondante)
    Ensuite, dans ta feuille Graphe, tu peux utiliser Cells(1,1).CurrentRegion.Address pour avoir la plage de données de ton graphe.
    Tu essaies ça si ça te dit et tu nous montres ce que tu as fait si tu as un pb
    La méthode te permet d'utiliser la même macro quelque soit la référence sans avoir à poser de filtre.
    Pour la recherche, utilise find en évitant la selection de la donnée trouvée.
    Le code pour faire ça ? De nombreux exemples existent sur le forum
    A+

  10. #10
    Membre confirmé Avatar de lolo_bob2
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 195
    Par défaut
    Salut

    En fait je ne veux pas filtrer les données là c'etait juste pour recuperer ma référence exemple...
    - copier une à une la valeur de la colonne 6 (F) correspondante, dans ta feuille graphe (ainsi que le nom de la feuille correspondante)
    Par contre c'est bien ce que je voulais faire mais c'est là que je bloque...
    On essaye avec mon collegue de modifier le code avec une boucle for mais aucun succès...
    On est novice tous les deux en fait c'est un code qui avait été fait auparavant auquel on voudrais ajouter des modifications...

    Merci

    A+

  11. #11
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Tu utilises Find pour rechercher ta référence ?
    Montre ce que tu as fait
    A+

  12. #12
    Membre confirmé Avatar de lolo_bob2
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 195
    Par défaut
    Salut voila ce que j'ai fait et ou j'ai des soucis

    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
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    Sub Graphique()
    '
    Dim Reference      As Variant
    Dim Plage          As Range
    Dim Cel            As Range
    Dim OldCalculation As Long
     
    '****************************
    ' A supprimer : temps d'exéc.
    'Dim Debut, Fin
    '****************************
    '
      With Application
        OldCalculation = .Calculation
        .Calculation = xlCalculationManual
        .ScreenUpdating = False
      End With
     
      Reference = InputBox("Entrez la référence d'un produit")
     
      '****************************
      ' A supprimer : temps d'exéc.
      'Debut = Timer
      '****************************
     
      On Error Resume Next
      Reference = CDbl(Reference)
      If Err <> 0 Then
        Err.Clear
        GoTo SortieAnticipee
      End If
     
      With Application
        .DisplayAlerts = False
        ThisWorkbook.Sheets("Graphique").Delete
        .DisplayAlerts = True
        On Error GoTo 0
      End With
     
      Sheets.Add before:=ThisWorkbook.Sheets(1)
      ActiveSheet.Name = "Graphique"
     
      Set Cel = Range("B1")
      For Each sh In Sheets
        If Left(sh.Name, 3) = "PRO" Then
          Cel.Offset(0, -1) = sh.Name
     
     
          With Application
        For Each Cel In Cells  ' --> ON NE SORT JAMAIS DE LA BOUCLE
         Cel = .Index(sh.Range("F:F"), .Match(Reference, sh.Range("B:B"), 0), 1)
            Set Cel = Cel.Offset(1, 0)
     
           Next Cel
     
            End With
        End If
      Next sh
     
      Set Plage = Range("A1", Range("B65536").End(xlUp))
     
      Range("D5").Select
      Charts.Add
      With ActiveChart
        .ChartType = xlLineMarkers
        .SetSourceData Source:=Plage, PlotBy:=xlColumns
        .Location Where:=xlLocationAsObject, Name:="Graphique"
      End With
     
      With ActiveChart
        .HasTitle = True
        .ChartTitle.Characters.Text = "Référence : " & Reference
        .HasLegend = False
      End With
     
      ActiveSheet.ChartObjects("Graphique 1").Activate
      With ActiveChart.Axes(xlCategory).TickLabels
        .Alignment = xlCenter
        .Orientation = xlUpward
      End With
     
      With ActiveSheet.ChartObjects("Graphique 1")
        .Top = Range("D5").Top
        .Left = Range("D5").Left
        .Height = Range("K27").Top - Range("D5").Top
        .Width = Range("K27").Left - Range("D5").Left
      End With
     
      Range("A1").Select
     
      GoTo Fin
     
    SortieAnticipee:
     
      MsgBox prompt:="Sortie de la procédure" & vbCrLf & _
                     "   sur votre demande" & vbCrLf & _
                     "   ou erreur de saisie", _
                     Buttons:=vbInformation + vbOKOnly
     
      Sheets("Execution").Select
     
    Fin:
     
      With Application
        .Calculation = OldCalculation
        .ScreenUpdating = True
      End With
     
      '****************************
      ' A supprimer : temps d'exéc.
      'Fin = Timer
      'MsgBox "Temps d'exécution (en s.) : " & (Fin - Debut)
      '****************************
     
    End Sub
    En fait on a rajouté une boucle for pensant que l'on arriverait à capter toutes les références car on n'y connait ien du out avec mon collegue...Mais on se rend compte qu'on ne sort jamais de la boucle...

    Merci de votre aide

    A+

Discussions similaires

  1. Modif pour Macro qui récupère contenu .TXT
    Par Garth69 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 19/02/2011, 19h35
  2. [XL-2010] Modification de Macro pour un tri de données
    Par davidstarr dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/01/2011, 17h39
  3. modification de macro VBA
    Par mayc5364 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 11/09/2009, 12h05
  4. Protéger les feuilles de la modification par macro
    Par blobnet dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/01/2009, 15h57
  5. Modif de macro auto pour appel de Form cree par Données puis formulaire
    Par Bernard67 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/03/2008, 13h06

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