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 :

Problème code VBA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 7
    Par défaut Problème code VBA
    Bonjour à tous,

    je rencontre un vrai problème sur mon code vba, je suis bloqué je n'arrive pas à rédiger le code, je vous explique.

    J'ai une feuille excel ou y 5 tableau déjà créés, chaque tableau contient 6 lignes et 8 colonnes, donc chaque colonnes je dois insérer des formuler pour des calcules et ça sera les mêmes formules pour les 4 tableaux en bas je ne sais pas comment créer cette boucle.

    Je vous remercie par avance,

  2. #2
    Membre Expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 871
    Billets dans le blog
    1
    Par défaut
    Bonjour et bonne année

    J'ai plusieurs questions :

    1) tu dis
    ... je rencontre un vrai problème sur mon code vba, je suis bloqué je n'arrive pas à rédiger le code, ...
    Et si tu nous montrais ton code qe l'on voit ce qui ne va pas ?

    2) comment sont positionner tes tableaux ?
    - les uns en dessous des autres
    - Les uns à côté des autres
    - Un sur chaque Feuille
    - ...

    3) tu dis
    ... chaque tableau contient 6 lignes et 8 colonnes, donc chaque colonnes je dois insérer des formuler pour des calcules ...
    Tes tableaux sont plutôt petits le gain de faire une macro pour ça n'est pas évident.

    de plus faire une macro pour insérer une formule (qui de surcroit sera en anglais) pour avoir un résultat de calcul au lieu d'y insérer directement le résultat ne me parait pas la meilleure méthode.

    enfin ave le peu que tu dis toujours.

    n'hesites pas à faire des captures écrans pour montrer le but de tes questions et surtout dis nous si les tableaux sont forcement organiser comme tu les montrera ou si on peut éventuellement te faire des suggestions d'organisation de tes tableaux.

    A bientôt

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 7
    Par défaut
    Bonjour,

    Je vous remercie de votre retour.

    je n'ai aucun code pour l'instant, j'ai juste des tableaux excel sur une même feuille que je dois alimenter à l'aide d'une macro VBA
    Oui ils sont positionnés les uns en dessous des autres séparés avec des vides sur une même feuille.

    Bonne journée,
    Images attachées Images attachées  

  4. #4
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 680
    Par défaut
    Bonjour,
    Citation Envoyé par PowerVBA Voir le message
    J'ai une feuille excel ou y 5 tableau déjà créés, chaque tableau contient 6 lignes et 8 colonnes, donc chaque colonnes je dois insérer des formuler pour des calcules et ça sera les mêmes formules pour les 4 tableaux en bas je ne sais pas comment créer cette boucle.
    L'enregistreur de macro te donneras 90% du code:
    Puisque tes formules sont identiques il te suffit de les écrire dans le premier tableau puis de faire un copier / coller (avec éventuellement un collage spécial formules)

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 7
    Par défaut
    l'enregistreur Macro ne pourra pas me donner tout le code, car après chaque tableau la boucle doit passer au deuxième tableau.
    les fonctions sont les mêmes pour chaque tableau mais les données sont de feuilles différentes.

    Merci pour ta réponse

  6. #6
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Bonjour,

    Je confirme. La formulation suffit.
    Tu peux formuler sur une ligne d'un premier tableau.
    Copier/Coller sur l'ensemble des lignes du tableau

    Recopier cette formulation sur les 2 tableaux suivants
    Utiliser le remplacement (CTRL + H) pour modifier le nom des feuilles de données.

  7. #7
    Membre Expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 871
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Je me permet de te dire qu'il aurait été plus simple de mettre un tableau par onglets pour 2 raisons :

    1) d'après ce que j'ai vu c'est des tableaux qui vont vire et donc lorsque tu ajouteras 2018 et 2019 tu devra insérer des lignes et risque de perturber les formules existantes si elles n'utilisent pas les références reltives et/ou partielles.

    Or avec un tableau par onglet cela ne pose aucun Problème et tu peux même tous les faire d'un coup

    2) tu peux sélectionner tous tes onglets et insérer les formules en une fois égalmement

    donc si ta hierarchie n'est pas contre fait un onglet un seul tableau

    ta maintenance sera grandement facilité

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 7
    Par défaut
    Bonjour,

    Enfaite les onglets sont remplie d'une raquette que j’extraie et j'ai 5 onglets pareilles ou je dois trier par une référence pour chaque onglets et faire les calculs, du coup je ne pourrai pas mettre chaque tableau dans un onglet. Mon problème c'est de trouver une boucle qui balaye tous les tableaux ou bien dès que je suis sur cellule d'un tableau et le sélectionne et part directement à la deuxième colonne et calcul après elle passe au deuxième tableau et ainsi de suite jusqu'à ce qu'elle finit tous les tableaux.

    Merci,

  9. #9
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 680
    Par défaut
    Citation Envoyé par PowerVBA Voir le message
    l'enregistreur Macro ne pourra pas me donner tout le code, car après chaque tableau la boucle doit passer au deuxième tableau.
    les fonctions sont les mêmes pour chaque tableau mais les données sont de feuilles différentes.
    L'enregistreur te donnera la base du code ce qui représente 90% du boulot, vu que tes espace entre les tableaux sont réguliers un simple offset devrait permettre de passer au tableau suivant, mais encore faut-il avoir le code pour remplir le premier tableau, ce que te n'as toujours pas donné

  10. #10
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 7
    Par défaut
    Bonjour,

    oui pour l'instant c'est l’idée que j'ai aussi.

    pour le code j'ai fait un enregistrement de macro pour s'inspirer, le voila pour ma première colonne de cotisation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        Range("B7").Select
        ActiveCell.FormulaR1C1 = _
            "=SUMIFS(Primes!C[5],Primes!C[4],'CDR Ensemble Personnel'!RC[-1],Primes!C[2],'CDR Ensemble Personnel'!R3C4,Primes!C[12],'CDR Ensemble Personnel'!R1C1)"
        Range("B7").Select
        Selection.AutoFill Destination:=Range("B7:B10"), Type:=xlFillDefault
        Range("B7:B10").Select
        Range("B11").Select
        ActiveCell.FormulaR1C1 = "=SUM(R[-4]C:R[-1]C)"
        Range("B12").Select
    Maintenant je dois faire une boucle pour remplir tout le tableau et passer au tableaux en dessous en prenant compte les espaces entre les tableaux.

    Merci,

  11. #11
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 680
    Par défaut
    Maintenant en enlevant tout ce qui est inutile le code fourni par l'enregistreur devient:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        Range("B7").FormulaR1C1 = "=SUMIFS(Primes!C[5],Primes!C[4],'CDR Ensemble Personnel'!RC[-1],Primes!C[2],'CDR Ensemble Personnel'!R3C4,Primes!C[12],'CDR Ensemble Personnel'!R1C1)"
        Range("B7").AutoFill Destination:=Range("B7:B10"), Type:=xlFillDefault
        Range("B11").FormulaR1C1 = "=SUM(R[-4]C:R[-1]C)"
    Maintenant je dois faire une boucle pour remplir tout le tableau
    Pourquoi une boucle ?
    Si tu veux y mettre les même formules tu peux:
    -faire un copier coller
    -utiliser autofill comme tu l'as déjà fait
    -mettre directement la formule dans tout le tableau en adaptant le code: remplacer range("B7").formula par range("B7:B12").formula (de même pour les lignes suivantes)

    et passer au tableaux en dessous en prenant compte les espaces entre les tableaux.
    En supposant que tu as 4 tableaux au total espacée de 10 lignes chacun (le premier commençant en B7 le second en B17 par exemple)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    For i=0 to 4 '4=nb total de tableau
       Range("B7").offset(10*i).FormulaR1C1 = "=SUMIFS(Primes!C[5],Primes!C[4],'CDR Ensemble Personnel'!RC[-1],Primes!C[2],'CDR Ensemble Personnel'!R3C4,Primes!C[12],'CDR Ensemble Personnel'!R1C1)"
        Range("B7").offset(10*i).AutoFill Destination:=Range("B7:B10").offset(10*i), Type:=xlFillDefault
        Range("B11").offset(10*i).FormulaR1C1 = "=SUM(R[-4]C:R[-1]C)"
    '10 = espace entre chaque tableaux

Discussions similaires

  1. Problème Code VBA, ajout non désiré sur bouton
    Par vivicente dans le forum VBA Access
    Réponses: 3
    Dernier message: 12/06/2008, 17h33
  2. Problème code VBA
    Par nanot dans le forum VBA Access
    Réponses: 21
    Dernier message: 04/06/2008, 15h24
  3. Problème code vba
    Par moilou2 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/04/2008, 12h03
  4. Problème code VBA :)
    Par Freygolow dans le forum Access
    Réponses: 4
    Dernier message: 17/05/2007, 15h43

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