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 :

Aide création macro [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2015
    Messages : 6
    Par défaut Aide création macro
    Bonjour à toute la communauté,

    Je vous contacte car j'ai un problème excel (evidemment) et plus particulièrement de création de macro.
    Comme vous pouvez le voir dans mon fichier joint (Feuille1 et 2), le corps du travail est déjà fait.

    Mon fichier dans la feuille 1 ne sera jamais le même (n'aura jamais le même nombre de ligne) et alimente le tableau feuille 2. Et j'aurai besoin qu'en faite, mon tableau feuille 2 se créer par le biais d'une macro comme ça je pourrai l'executer pour chaque fichier (j'ai un nouveau fichier similaire chaque semaine que je retraite avec le tableau.. très rébarbatif).
    J'ai déjà fais une demande sur un forum concurrent au votre mais je n'ai malheureusement pas eu la réponse souhaitée..

    J'espère que mon fichier vous servira à effectuer des tests.
    Si vous avez des questions, ou des problèmes sur la clarté de mon message n'hésitez pas !

    Merci par avance,
    Alexandre
    Fichiers attachés Fichiers attachés

  2. #2
    Membre Expert
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Par défaut
    Bonjour Alex74330,

    sur un forum concurrent
    Ah bon ?! Ca existe des forums "concurrents" ?

    Bref, dans ta feuille 1 tu as des dates en colonne AQ et les termes "Pas de risque", "Risques non Levés" et "Risques Levés" en colonne CD.
    C'est tout ce qu'il faut checker ?

    Cordialement,
    Kimy

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2015
    Messages : 6
    Par défaut
    Bonjour Kimy,

    Evidemment, la concurrence a toujours existé dans tous les domaines que j'ai pu étudié et existera toujours ahaha.
    Bref, revenons à nos moutons.

    Si je comprends bien ta question, oui ce sont les seuls paramètres qui m'interesse pour le remplissage de mon tableau (feuille2) qui donne ensuite lieu à un graphique.

    Et je me demande donc s'il est possible de developper une macro, qui automatisera la création de ce tableau ici présent car chaque semaine je le recréer pour une nouvelle série de données qui est sous la même forme.

    Il y a evidemment plus de données, mais confidentialité oblige, je ne peux vous les transmettre.

    Merci de ta réponse.

    Cordialement,
    Alexandre

  4. #4
    Membre Expert
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Par défaut
    Alex74330,

    Quand je parlais de concurrence c'est, qu'à mon sens, il n'y a pas de forums concurrents. Les forums permettent une entraide et, quelque soit celui qui contient la réponse, l'objectif est de permettre à la large communauté d'accéder à des solutions.

    "Bref", en fait, concernant ton problème, je pense que tu n'as pas expliqué la moitié du fonctionnel.
    1) A quoi correspond un "Risques non Levés" ?
    2) A quoi correspond un "Risques Levés" ?
    3) Souhaites-tu conserver un menu déroulant dans la Feuil2 - Cellule B1 ?
    4) Que signifie tous les SOMMEPROD que tu as dans la feuille ? Souhaites-tu les conserver ?
    5) N'y a-t-il pas moyen de faire un tableau avec les dates des mois/années en entête un peu plus large ?

    Tu me donnes l'impression d'avoir "balancé" un fichier sans savoir où, toi, tu voudrais aller...

    J'attends ton retour, clair, explicite et surtout complet.

    Cordialement,
    Kimy

  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


    Bonjour,

    juste en lisant les règles de ce forum - avant de poster sa première demande ! - il est facile de constater
    le but n'est pas de livrer une procédure "clef en main" en partant de rien mais d'aider à la correction du code entrepris
    par le demandeur, contrairement à l'autre forum (et pourtant la voie du TCD telle la demande formulée semble convenir) …
    Et évidemment avec une présentation claire & exhaustive du besoin !

    Ne pas oublier l'ami du débutant : le Générateur de macros livrant sur un plateau une base de code …
    Sans compter les ressources de la FAQ et des tutoriels de ce forum !

    _____________________________________________________________________________________________________
    Je suis Charlie - Je suis Bardo

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2015
    Messages : 6
    Par défaut
    Re-bonjour,

    Un risque non levé est un risuqe inferieur à 100%, au contraire un risque levé est un risque supérieur ou égale à 100%.
    Le menu déroulant me semble être une bonne idée mais n'est pas indispensable.
    Les SOMMEPROD servent à calculer le nombre de "pas de risque", "risques levés" et "risques non levés" par mois.
    Peut être un TCD mais je suis perdu à ce moment.

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2015
    Messages : 6
    Par défaut
    Re,

    J'ai résolu mon problème !
    Merci à vous deux pour votre aide, finalement comme l'a si bien dit Marc, le générateur de macro est l'ami des débutants.

    J'ai une dernière question, peut être que un de vous deux pourra m'aider.

    Dans ma macro il y a cette formule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        ActiveCell.FormulaR1C1 = _
            "=SUMPRODUCT(--(Feuil1!R2C82:R928C82<100%)*(YEAR(Feuil1!R2C43:R928C43)=YEAR(R2C))*(MONTH(Feuil1!R2C43:R928C43)=MONTH(R2C)))"
    J'aimerai savoir comment pourrais-je faire pour modifier les "R928" pour que le calcul s'arrête à la dernière cellule et non pas à la ligne 928 car mes fichiers n'ont jamais la même longueur.

    Avez vous besoin de ma macro entière ?

    Cordialement,
    Alexandre

  8. #8
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    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 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    au vu de ta demande

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Dim i As Long
    i = Worksheets("Feuil1").UsedRange.Rows.Count
     
    ActiveCell.FormulaR1C1 = _
    "=SUMPRODUCT(--(Feuil1!R2C82:R" & i & "C82<100%)*(YEAR(Feuil1!R2C43:R" & i & "C43)=YEAR(R2C))*(MONTH(Feuil1!R2C43:R" & i & "C43)=MONTH(R2C)))"
    le 928 et remplacé par la dernière ligne non vide de Feuil1

    maintenant à voir si c'était la seule coordonnée dynamique a récupérer

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2015
    Messages : 6
    Par défaut
    Bonjour Joe,

    Merci pour ta réponse rapide !

    Et est-ce que ta formule pourrait marcher avec les autres SUMPRODUCT ? (En adaptant bien sur)

    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
    Sub Risks_removed_before_PSA()
    '
    ' Risks_removed_before_PSA Macro
    '
     
     
         Range("A1").AutoFilter
        Range("CB1").FormulaR1C1 = "Risk max avant PSA"
        Range("CC1").FormulaR1C1 = "Risk PSA"
        Range("CD1").FormulaR1C1 = "Risk levé avant PSA"
        Range("CB2:CB" & Cells(Rows.Count, 1).End(xlUp).Row).FormulaR1C1 = _
            "=MAX(SUM(RC[-20]:RC[-17]),SUM(RC[-16]:RC[-13]),SUM(RC[-12]:RC[-9]),SUM(RC[-8]:RC[-5]))"
        Range("CB2:CB928").Select
        Range("CC2:CC" & Cells(Rows.Count, 1).End(xlUp).Row).FormulaR1C1 = "=SUM(RC[-5]:RC[-2])"
        Range("CC3").Select
        Range("CC2").Select
        Range("CC2:CC928").Select
        Range("CD2:CD" & Cells(Rows.Count, 1).End(xlUp).Row).FormulaR1C1 = _
            "=IFERROR(IF(AND(RC[-1]=0,RC[-2]>0),1,IF(AND(RC[-1]=0,RC[-2]=0),""Pas de risque"",RC[-1]/RC[-2])),100%)"
        Range("CD2").Select
        Range("CD2:CD928").Select
        Selection.Style = "Percent"
        Sheets("Feuil2").Select
        Range("C3").Select
        ActiveCell.FormulaR1C1 = _
            "=SUMPRODUCT(--(Feuil1!R2C82:R928C82=RC2)*(YEAR(Feuil1!R2C43:R928C43)=YEAR(R2C[-1]))*(MONTH(Feuil1!R2C43:R928C43)=MONTH(R2C)))"
        Range("C3").Select
        Selection.AutoFill Destination:=Range("C3:N3"), Type:=xlFillDefault
        Range("C3:N3").Select
        Range("C4").Select
        ActiveCell.FormulaR1C1 = _
            "=SUMPRODUCT(--(Feuil1!R2C82:R928C82<100%)*(YEAR(Feuil1!R2C43:R928C43)=YEAR(R2C))*(MONTH(Feuil1!R2C43:R928C43)=MONTH(R2C)))"
        Range("C4").Select
        Selection.AutoFill Destination:=Range("C4:O4"), Type:=xlFillDefault
        Range("C4:O4").Select
        Range("C5").Select
        ActiveCell.FormulaR1C1 = _
            "=SUMPRODUCT(--(Feuil1!R2C82:R928C82<>"""")*(YEAR(Feuil1!R2C43:R928C43)=YEAR(R2C))*(MONTH(Feuil1!R2C43:R928C43)=MONTH(R2C)))-SUM(R[-2]C:R[-1]C)"
        Range("C5").Select
        Selection.AutoFill Destination:=Range("C5:N5"), Type:=xlFillDefault
        Range("C5:N5").Select
        Range("O3").Select
        Selection.AutoFill Destination:=Range("O3:O6"), Type:=xlFillDefault
        Range("O3:O6").Select
    End Sub

  10. #10
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    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 169
    Billets dans le blog
    5
    Par défaut
    Bien sûr, mais attention pour cette formule (si tu veux la changer)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Range("CB2:CB" & Cells(Rows.Count, 1).End(xlUp).Row).FormulaR1C1 = _
            "=MAX(SUM(RC[-20]:RC[-17]),SUM(RC[-16]:RC[-13]),SUM(RC[-12]:RC[-9]),SUM(RC[-8]:RC[-5]))"
    là tu travailles en référence relative (décalage par rapport à la cellule où est insérée la formule, donc la modification est différente

    j'évite de travailler en référence R1C1 car c'est pas très lisible

    c'est plus pratique d'avoir de travailler directement avec les coordonnées

    regarde si le sujet de Philippe au sujet des formules par VBA peut t'aider : http://www.developpez.net/forums/blo...procedure-vba/

    regarder aussi la différence entre la propriété "Formula" et "FormulaR1C1" en recherchant dans le forum

  11. #11
    Nouveau membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2015
    Messages : 6
    Par défaut
    RE,

    Ok, merci pour ton aide !
    On va dire que mon poroblème est résolu !

    Bonne journée à vous tous,
    Cordialement,
    Alexandre

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

Discussions similaires

  1. [VBA-E][débutant]aide pour macro sous excel
    Par julyBL dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 09/06/2006, 22h42
  2. [VBA-E] aide pour macro sur excel
    Par letoulouzin31 dans le forum Macros et VBA Excel
    Réponses: 21
    Dernier message: 24/05/2006, 11h29
  3. Aide création requette MDX
    Par Tankian dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 23/05/2006, 17h23
  4. création macro "parcourir
    Par marie100282 dans le forum Access
    Réponses: 3
    Dernier message: 05/05/2006, 15h12

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