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 sur macro [Toutes versions]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Inscrit en
    Juillet 2010
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 8
    Points : 4
    Points
    4
    Par défaut aide sur macro
    bonjour,
    j'ai besoin de faire une macro qui donne le nombre de chiffre répété dans des tableaux et remplir les resultats obtenu dans un autre tableau.
    j'ai réussi a faire cela mais seulement pour un nombre de ligne fixe pour chaque tableau, si jamais on change le nombre de ligne sélectionner pour chaque tableau il se peut que le premier tableau se confond avec le deuxiéme ce qui bousille les calculs donc ce qu'il faudrait faire c'est assigné une variable au ligne et une variable au tableau et faire en sorte que quand on trouve du vide on s'arrête et on passe au tableau suivant ainsi de suite.
    la fonction que j'utilise c'est NB.SI.ENS voici une image pour mieux illustrer le problème MERCI.
    LA QUESTION : c'est comment passer d'un nombre de ligne fixe a un nombre variable sans confondre les tableaux?

    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
    Sub Macro3()
    '
    ' Macro3 Macro
    '
     
    '
        Range("J8").Select
        ActiveCell.FormulaR1C1 = "=COUNTIFS(R12C[-7]:R30C[-7],RC[-1])"
        Selection.AutoFill Destination:=Range("J8:J28"), Type:=xlFillDefault
        Range("J8:J28").Select
        Range("K8").Select
        ActiveCell.FormulaR1C1 = "=COUNTIFS(R38C[-8]:R83C[-8],RC[-2])"
        Selection.AutoFill Destination:=Range("K8:K28"), Type:=xlFillDefault
        Range("K8:K28").Select
        Range("H33").Select
    End Sub
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Bonjour et bienvenu au forum.
    Pour pouvoir avoir des répondes précises, il est souhaitable d'expliciter clairement la problème rencontré en donnant des précision sur la disposition des données (constitution des plages de données, résultat attendu..etc)
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  3. #3
    Membre expérimenté Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Points : 1 665
    Points
    1 665
    Par défaut
    bonjour,

    j'espère avoir bien compris ton problème

    en utilisant les plages nommée voici en attachement dans ton fichier ce que l'on peux faire

    sinon la formule ressemble à ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =COUNTIF(INDIRECT(ADDRESS(ROW(OnlineTrade)+2;3)&":"&ADDRESS(ROW(VM)-4;3));$I8)
    Alleï Bonjour chez vous!

  4. #4
    Membre expérimenté Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Points : 1 665
    Points
    1 665
    Par défaut
    bon si j'oublie le fichier, ça va pas le faire... moins bien en tout les cas! lol

    sinon, j'ai vu que tu as répondu entre temps

    c'est bien ce que la formule fait

    peut-être cela sera plus clair avec le fichier modifié
    Fichiers attachés Fichiers attachés
    Alleï Bonjour chez vous!

  5. #5
    Candidat au Club
    Inscrit en
    Juillet 2010
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    Slt maykeullll et merci pour ton aide j'ai vu ce que tu m'as envoyé mais en fait j'ai besoin de la macro car c'est un travail que je dois faire plusieurs fois (il y aura les memes tableaux sauf que les données vont changer et le nombre de ligne pour chaque tableau aussi genre je pourai avoir 50 lignes dans le premier tableau au lieu du nombre que j'ai maintenant ). alors pourrais tu m'eclaircir comment tu as procédé pour le remplissage que tu ma envoyé ???

  6. #6
    Membre expérimenté Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Points : 1 665
    Points
    1 665
    Par défaut
    oui bien sur

    rappel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    =COUNTIF(INDIRECT(ADDRESS(ROW(OnlineTrade)+2;3)&":"&ADDRESS(ROW(VM)-4;3));$I8)
    cette formule ne fonctionne qu'avec des prérequis
    tout d'abord, tu dois nommer les cellules qui contiennent les noms des tableaux
    par exemple en A9 la cellule a été renommée "OnlineTrade"
    ce qui veux dire que tu peux la rapeller dans un calcul comme ceci
    =OnlineTrade+C32
    pour faire cela tu sélectionne la cellule et dans l'espace en haut à gauche d'excel, là ou tu vois la référence de la cellule ( ex: A1 ) tu remplace par un nom et tu valide par {ENTREE}
    voilà j'espère que tu as compris ( sinon tu demande )

    bon maintenant la formule
    on va mettre de coté le countif pour mieux comprendre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INDIRECT(ADDRESS(ROW(OnlineTrade)+2;3)&":"&ADDRESS(ROW(VM)-4;3))
    INDIRECT retourne la référence spécifiée par du texte.
    en gros dans ton fichier :
    devrais retourner
    PRODUCTION DU MOIS D'AVRIL 2010 PAR CENTRE D'AFFAIRES
    car il interprete directement la référence.

    pour ton probleme, on a besoin d'une plage de plusieur cellule
    indirect peut nous y aider encore grace à la fonction address
    Address retourne l'adresse d'une cellule au format texte
    pour cela on lui renseigne la ligne et la colonne
    row(1;1) renvoie "$A$1"

    alors, je lui demande de me donner une addresse dont la permière cellule est la ligne de la cellule(OnlineTrade)+2 et la colonne 3(C) ( il me renvoie "$C$11")
    j'ajoute un texte":" et lui défini la dernire cellule comme étant celle qui se trouve sur la ligne de la cellule(VM(pour virement de masse)-4 et sur la colonne 3(C).
    il me renvoie donc "$C$11:$C$30"
    qu'il trnsforme en référence grace à INDIRECT
    que l'on peux passer dans la formule countifs

    voila, j'espère que c'est plus clair

    maintenant petite question, tu travaille avec quelle version d'excel?
    Alleï Bonjour chez vous!

  7. #7
    Candidat au Club
    Inscrit en
    Juillet 2010
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    Pour étre clair et bien precis dans la pièce jointe on trouve 7 tableau la macro que je dois réaliser consiste a détecter combien un nombre est répété dans ts les tableau (par exemple le nombre 541 est répété 0 fois ds le tableau online trade par contre il l'est 4 fois ds virement de masse) et le résultat doit étre saisie ds le tableau qui se trouve a droite de la page excel, le problème c'est que je dois ecrire un programme qui commence a partir de la ligne 12 colonne c et qui commence a chercher les nbrs répété et donc pour qu'il puisse s'arreter a la fin de chaque tableau il faut définir une autre variable concernat les tableau et dire au programme de s'arreter une fois qu'il trouve une ligne vide pour passer au tableau suivant et commencer la méme demarche. est ce que c'est clair mnt ?
    Fichiers attachés Fichiers attachés

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

Discussions similaires

  1. [XL-2007] Aide sur macro
    Par bedoch dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/07/2009, 18h02
  2. Demande d'aide sur macro a double conditions
    Par zinebs dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 11/11/2007, 23h23
  3. RechercheV trop limité --> aide sur macro
    Par alexstain dans le forum Macros et VBA Excel
    Réponses: 19
    Dernier message: 24/10/2007, 20h29
  4. Aide sur Macro
    Par anisr dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 17/07/2007, 22h28

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