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 :

boucle sur colonne


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Divers
    Inscrit en
    Février 2017
    Messages
    295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Divers

    Informations forums :
    Inscription : Février 2017
    Messages : 295
    Par défaut boucle sur colonne
    Bonjour,
    Je voudrais faire une boucle sur les colonnes
    j'ai essayé le code suivant mais cela plante
    J'ai ajouté une image de mon tableau.

    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
    Private Sub worksheet_activate()
     
    Dim x As Variant
    Dim cvak As Variant
    Dim cvek As Variant
     
    For x = 2 To 15
     
    cvak = Application.WorksheetFunction.VLookup(sh_check.Range(x & ":25"), sh_parameters.Range("$B$3:$G$16"), 4, 0)
    cvek = Application.WorksheetFunction.VLookup(sh_check.Range(x & ":25"), sh_parameters.Range("$B$3:$G$16"), 5, 0)
     
     
        Me.Range(x & "26").Value = Application.WorksheetFunction.Somme(cvak & "2:" & cvak & sh_month.UsedRange.Rows.Count - 1)
        'me.Range(x & "27").Value =
    Next x
     
     
    End Sub
    Nom : Capture.JPG
Affichages : 661
Taille : 26,7 Ko

    Merci beaucoup.

  2. #2
    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 rosemma,

    Content de te retrouver.

    L'expression

    n'a pas de signification.
    En effet, x est une variable Byte(et non Variant comme tu l'écris).
    Utiliser plutôt l'objet Cells.

    De plus, les fonctions de feuille de calcul s'orthographient en VBA en anglais.
    (exemple : "Sum" et non "Somme")

    A quoi correspond "Scheck". La variable est-elle (bien) déclarée?

    Le cas échéant, reviens avec le code complet en précisant le(s) point(s) d'achoppement si une erreur survient.

  3. #3
    Membre éclairé
    Homme Profil pro
    Divers
    Inscrit en
    Février 2017
    Messages
    295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Divers

    Informations forums :
    Inscription : Février 2017
    Messages : 295
    Par défaut
    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
    Private Sub worksheet_activate()
     
    Dim x As Byte
    Dim cvak As Variant
    Dim cvek As Variant
     
    cvak = Application.WorksheetFunction.VLookup(Me.Range(x & "25"), sh_parameters.Range("$B$3:$G$16"), 4, 0)
    cvek = Application.WorksheetFunction.VLookup(Me.Range(x & "25"), sh_parameters.Range("$B$3:$G$16"), 5, 0)
     
    For x = 2 To 15
        Me.Range(x & "26").Value = Application.WorksheetFunction.Sum(cvak & "2:" & cvak & sh_month.UsedRange.Rows.Count - 1)
        'me.Range(x & "27").Value =
    Next x
     
     
    End Sub
    Voici le tableau que je veux remplir; il se trouve dans la feuille codename sh_check :

    Nom : Capture.JPG
Affichages : 655
Taille : 28,8 Ko

    Explication :
    Je voudrais remplir ce tableau de façon automatique.
    faire une recherche sur la ligne 25 (B25, C25,...). sur base cette info, il va rechercher dans une autre feuille une info, voir image ci dessous :

    Nom : Capture.JPG
Affichages : 684
Taille : 48,0 Ko

    faire somme dans la ligne 26 sur base de lettre récupérée dans la recherche et ligne 2 (ex: B2) jusque dernière ligne remplie dans la colonne B de la feuille sh_month.

    Pas facile à expliquer, j'espère avoir été clair.

    Merci pour ton aide.

  4. #4
    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
    j'espère avoir été clair.
    Non.
    Pourrais-tu faire des copies d'écran
    1 - des données telles qu'elles se présentent
    2 - du résultat que tu souhaites obtenir sur un exemple précis.

    S'il te plaît, réponds aux questions.
    Notamment sur celle quant à la déclaration des variables (sh_parametres)
    Il te faut retourner tous les codes concernés.

    Igloobel.
    C'est ce que j'ai mentionné;, non?

  5. #5
    Membre éclairé
    Homme Profil pro
    Divers
    Inscrit en
    Février 2017
    Messages
    295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Divers

    Informations forums :
    Inscription : Février 2017
    Messages : 295
    Par défaut
    voici le code modifié :
    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
    Private Sub worksheet_activate()
     
    Dim x As Byte
    Dim cvak As Variant
    Dim cvek As Variant
     
    For x = 2 To 15
     
    cvak = Application.WorksheetFunction.VLookup(Me.Cells(25, x), sh_parameters.Range("$B$3:$G$16"), 4, 0)
    cvek = Application.WorksheetFunction.VLookup(Me.Cells(25, x), sh_parameters.Range("$B$3:$G$16"), 5, 0)
     
        Me.Cells(26, x).Value = Application.WorksheetFunction.Sum(cvak & "2" & ":" & cvak & sh_month.UsedRange.Rows.Count - 1)
        Me.Cells(27, x).Value = Application.WorksheetFunction.Sum(cvek & "2" & ":" & cvek & sh_month.UsedRange.Rows.Count - 1)
     
    Next x
    End Sub
    je vais faire des captures et les mettre

  6. #6
    Membre éclairé
    Homme Profil pro
    Divers
    Inscrit en
    Février 2017
    Messages
    295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Divers

    Informations forums :
    Inscription : Février 2017
    Messages : 295
    Par défaut
    feuille sh_check
    Nom : sh_check.JPG
Affichages : 626
Taille : 26,0 Ko

    feuille sh_parameters
    Nom : sh_parameters.JPG
Affichages : 679
Taille : 61,7 Ko

    feuille sh_month
    Nom : sh_month.JPG
Affichages : 671
Taille : 99,1 Ko

    je voudrais faire la somme de C2 à la dernière ligne de la feuille sh_month à savoir 550650,50
    cela doit apparaitre en B26 de la feuille check.

    je remets mon code car découvert une petite erreur dans la formule de recherche:
    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
    Private Sub worksheet_activate()
     
    Dim x As Byte
    Dim cvak As Variant
    Dim cvek As Variant
     
    For x = 2 To 15
     
    cvak = Application.WorksheetFunction.VLookup(Me.Cells(25, x), sh_parameters.Range("$B$3:$G$16"), 5, 0)
    cvek = Application.WorksheetFunction.VLookup(Me.Cells(25, x), sh_parameters.Range("$B$3:$G$16"), 6, 0)
     
        Me.Cells(26, x).Value = Application.WorksheetFunction.Sum(cvak & "2" & ":" & cvak & sh_month.UsedRange.Rows.Count - 1)
        Me.Cells(27, x).Value = Application.WorksheetFunction.Sum(cvek & "2" & ":" & cvek & sh_month.UsedRange.Rows.Count - 1)
     
    Next x
     
    End Sub

  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
    Oui
    j'avais commencer à répondre puis j'ai été déranger pour une urgence quand j'ai fini ma réponse j'ai pas penser à regarder si d'autre avait répondu entre temps


    DSL

  8. #8
    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
    Rien de grave, Igloobel

    Rosemma,
    Encore une fois tu retournes tous les codes.
    Sur les captures, seront reportées les données initiales et les résultats (avec entêtes de lignes et colonnes)

  9. #9
    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,

    ça cela ne marche pas
    Range(x & "26").Value
    Un range a besoin de lettre exemple : Range("B" & "26").Value

    par contre ça cela marche
    Cells(26,x).Value
    Cells fonctionne avec des N° ligne et colonne exemple Cells (26,x).value


    NB: Cells fonctionne à l'inverse de range au point de vue des paramètres => Cells(N° ligne, N° de colonne)

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

Discussions similaires

  1. Boucle sur colonnes et sur lignes
    Par bilou_12 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 06/02/2012, 11h27
  2. Boucle sur colonne
    Par slimlus dans le forum Développement de jobs
    Réponses: 2
    Dernier message: 16/09/2010, 11h57
  3. [XL-97] Boucle sur colonne + replace
    Par brasco06 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 28/07/2009, 10h59
  4. Boucle sur colonnes
    Par leaprovence dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 09/05/2008, 23h45
  5. [vba-E2003] problème boucle sur colonne
    Par stargates dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 12/07/2007, 19h57

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