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 :

[VBA-E] Renvoie de donnée par rapport à un intitulé


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Étudiant
    Inscrit en
    Février 2007
    Messages
    11
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 11
    Points : 4
    Points
    4
    Par défaut [VBA-E] Renvoie de donnée par rapport à un intitulé
    bonjour c'est encore moi!!!

    J'ai un nouveau un probléme avec ma programation!!
    Pour être simple je veux que le programme me renvoie un montant par rapport à un intitulé. J'ai repris la macro d'un ancien stagaire et sur le coûts je comprends pas tous
    voici les écritures que je vais expliquer au fur et à mesure:

    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
     
    'Macro remplissant le budget de l'année mois par mois en fonction du libellé
    Sub budget()
    'Paramétrage et définition des variables
    Dim recueil As range
    Dim maplage As range
    Dim i As Variant
    Dim a As Variant
    Dim z As Variant
    Dim r As Variant
    Dim s As Variant
    Dim Val As Variant
    Dim Val2 As Variant
    Dim vehicule As String
    Dim lignemax
    Set maplage = Sheets("budget").range("b12:bk200")  'Zone de remplissage
    Sheets("BudgetCoûts").Activate
    ActiveSheet.range("A5").Select
    Selection.CurrentRegion.Select
    Set recueil = Selection     'Zone de données
    Sheets("budget").Activate
     
    lignemax = maplage.range("A1").SpecialCells(xlCellTypeLastCell).Row
    'Boucle sur zone de saisie
    For i = 1 To lignemax
    'recherche le nom du véhicule sur la colonne 3 de l'onglet budget
        vehicule = maplage.Cells(i, 3).Value
        If vehicule <> "" Then
        'Boucle sur zone de données recoupant avec le véhicule
        For z = 2 To recueil.Rows.Count
     
            If recueil.Cells(z, 8).Value = vehicule Then
                r = 0
                s = 0
                'Boucle délimitant le nombre de cellules à récuperer de la zone de saisie
                For a = 0 To 95
                    'Raccourci des boucles
               If recueil.Cells(z, 106 + r).Value = 0 Then
                    a = a + 11
                    r = r + 1
                    Else
                    'saisie des données (valeur précédentes + nouvelles)
                    Val = maplage.Cells(i, 4 + a).Value
                    Val2 = recueil.Cells(z, 10 + a).Value
                    maplage.Cells(i, 4 + a).Value = Val2 + Val
                    s = s + 1
                    If s = 12 Then
                        r = r + 1
                        s = 0
                    End If
                End If
     
                Next a
            End If
        Next z
        End If
    Next i
     
    End Sub

  2. #2
    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
    Points : 15 543
    Points
    15 543
    Par défaut
    Citation Envoyé par GardienDuCode
    bonjour c'est encore moi!!!

    J'ai un nouveau un probléme avec ma programation!!
    Pour être simple je veux que le programme me renvoie un montant par rapport à un intitulé. J'ai repris la macro d'un ancien stagaire et sur le coûts je comprends pas tous
    voici les écritures que je vais expliquer au fur et à mesure:
    ???
    Oui ? Et ton pb ?

  3. #3
    Candidat au Club
    Étudiant
    Inscrit en
    Février 2007
    Messages
    11
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 11
    Points : 4
    Points
    4
    Par défaut
    excuser j'ai eu pb j'ai pas peu tous expliqué

    le budget est réparti par mois et par centre de gestion sur l'onglet budget (le tout sur 95 colonnes)!!

    le probléme c'est que ça marche en partie mais pas entierement, c'est à dire que des fois il va me renvoyer les données sur l'onglet budget et des fois non et je ne sais pas pourquoi!! en fait je sais peut être pourquoi mais je suis pas sure!! il est possible que le programme ne comprent pas que si il y a par exemple il y a 2 intitulé identique il les additionne!!

    Si quelqu'un peut m'aidé je le remercie d'avance!!!

  4. #4
    Membre régulier Avatar de doringen
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 73
    Points : 87
    Points
    87
    Par défaut
    sans passer par du code, il y a moyen de faire ceci via une formule:
    =INDEX($A$1:$A$100;EQUIV(C1;$B$1:$B$100;0)
    Ici, la formule est à entrer en D1: les montants sont en colonne A, les noms de véhicules sont en colonne B et en colonne C, vous mettez le nom du véhicule recherché. La formule délivrera le montant associé au nom
    J´ai l´habitude de coder comme un lance-grenades
    Alors ne vous étonnez pas si mes macros vous pétent dans les doigts...

  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
    Points : 15 543
    Points
    15 543
    Par défaut
    Juste pour info, la méthode que je t'avais indiquée (avec tableaux des Centres de gestion... si je me souviens bien) tu en es où ? Tu as pu l'appliquer ? Pour me situer
    A+

  6. #6
    Candidat au Club
    Étudiant
    Inscrit en
    Février 2007
    Messages
    11
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 11
    Points : 4
    Points
    4
    Par défaut
    oui mais ça je le fais pour un autre onglet!!

    La je suis obligé de passer par une macro!!

    Je vais d'expliquer correctement mon problème (ça va changer )

    Sur mon onglet budgetcoûts à la colonne 8 j'ai le nom du véhicule, sur l'onglet budget à la colonne 3 j'ai aussi le nom du véhicule! Si les deux sont égaux alors on me renvoit le montant sur l'onglet budget!!

    l'onglet budgetcoûts à les 10 premiéres colonnes composés de nom (pas trés important) mais aprés de J à CO j'ai tous mes montant par centre de gestion et par mois (soit 5 centres * 12 mois). ensuite de la colonnes CP à DG j'ai les total par mois pour tous les centres de gestions (soit 12 colonnes) et enfin de DB à DG le total par centre de gestion (sans prendre en compte les mois soit 5 colonnes + 1 colonnes de TOTAL)!!

    Voila j'ai expliquer la tête de l'onglet mais si quelqu'un peut m'expliquer la macro du stagiaire cela m'arrangerait

  7. #7
    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
    Points : 15 543
    Points
    15 543
    Par défaut
    Déjà, remplace ça
    Sheets("BudgetCoûts").Activate
    ActiveSheet.range("A5").Select
    Selection.CurrentRegion.Select
    Set recueil = Selection 'Zone de données
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set Lf = Sheets("BudgetCoûts")
    Set recueil = Lf.range("A5").CurrentRegion
    On aura moins de chance de se tromper et ça supprime un activate et un select
    J'y retourne

    PS - Si tu n'as pas besoin de la feuille (Lf), tu peux encore simplifier en mettant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set Recueil = Sheets("BudgetCoûts").Range("A5").CurrentRegion

  8. #8
    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
    Points : 15 543
    Points
    15 543
    Par défaut
    PFFUUUT !
    Là, le code ne rime à rien ou alors j'ai pas compris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
            If recueil.Cells(z, 8).Value = vehicule Then
                r = 0
                s = 0
                'Boucle délimitant le nombre de cellules à récuperer de la zone de saisie
                For a = 0 To 95
                    'Raccourci des boucles
                    If recueil.Cells(z, 106 + r).Value = 0 Then
    Si r est toujours égal à 0, alors pourquoi l'ajouter ?
    J'en reste là, je n'ai pas la base de données sous les yeux et j'ai l'impression...
    Bon, j'ai une mauvaise impression
    A ta place, je ré-écrirais tout en sâchant ce que tu veux faire. Quand tu as bien défini ça, en français, ligne par ligne, condition par condition, tu nous reviens avec TES questions
    A+ et bon courage

  9. #9
    Candidat au Club
    Étudiant
    Inscrit en
    Février 2007
    Messages
    11
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 11
    Points : 4
    Points
    4
    Par défaut
    oui je sais j'ai pas non plus compris le code (c'est pas moi qui l'a fait)!!

    D'un autre coté ça me rassure un peu!! Si tu ne comprends pas le code alors moi c'est même pas la peine!! Merci pour ton aide, je vais plancher un peu dessus demain!!!

Discussions similaires

  1. Réponses: 2
    Dernier message: 22/12/2008, 15h29
  2. Récupérer données par rapport à un ID
    Par AnGe7s dans le forum XML/XSL et SOAP
    Réponses: 7
    Dernier message: 18/07/2007, 13h38
  3. envoyer des données par rapport à une checkbox
    Par dudu134 dans le forum Langage
    Réponses: 2
    Dernier message: 18/05/2007, 17h57
  4. Centrer des données par rapport à un texte "parent"
    Par firejocker dans le forum Mise en page CSS
    Réponses: 6
    Dernier message: 08/01/2007, 15h44
  5. Regrouper les données par rapport à la date
    Par goldeagle dans le forum Access
    Réponses: 7
    Dernier message: 11/12/2006, 15h35

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