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 données indexées


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Avril 2015
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Avril 2015
    Messages : 13
    Par défaut Boucle sur données indexées
    Bonjour,

    Je débute en VBA mais je bloque sur un truc :
    J'ai des données du type A1, A2, ...., A10.
    Ces valeurs doivent être recopiées dans des cellules sur une ligne (de D11 à M11).
    Comment pourrai-je le faire avec une boucle du type For i = 1 to 10.
    Merci d'avance.

  2. #2
    Membre confirmé
    Homme Profil pro
    Chargé d'étude
    Inscrit en
    Mars 2014
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Chargé d'étude

    Informations forums :
    Inscription : Mars 2014
    Messages : 50
    Par défaut
    Bonjour,

    Tu peux tester ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub test()
     
    Dim i As Integer
    Dim j As Integer
     
    For i = 1 To 10
     
            Cells(11, j + 4) = Range("A" & i)
            j = j + 1
    Next i
     
    End Sub

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

    il faut simplement retenir qu'une cellule possède 2 coordonnées : Ligne et Colonne
    On peut, en VBA, faire référence à une cellule ainsi : Worksheets("Nom de la feuille").Cells(N° Ligne, N°Colonne)

    dans ton exemple, les cellules en A ont leur ligne qui change à chaque fois
    les cellules de destinations sont sur la même ligne, ce sont les colonnes qui changent

    on va donc utiliser la boucle i = 1 to 10 pour affecter à chaque changement de ligne (en A), un changement de colonne (dans la plage de destination)

    voici un exemple à adapter

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub Exemple()
     
    Dim i As Long
     
    With ThisWorkbook.Worksheets("Feuil1")
        For i = 1 To 10
            .Cells(11, i + 3) = .Cells(i, 1)
        Next i
    End With
     
    End Sub

  4. #4
    Membre averti
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Avril 2015
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Avril 2015
    Messages : 13
    Par défaut
    Merci mais ça ne marche pas. Il me sort une erreur d'exécution '1004' (La méthode 'Range' de l'objet '_global' a échoué).
    C'est du chinois pour moi

    Merci joe.levrai, mais elles sont où mes valeurs A1, A2, A3, ...., A10 (qui peuvent être aussi (DIAMETRE1, DIAMETRE2, ..., DIAMETRE10).
    Cdlt

  5. #5
    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
    j'ai annoté le code

    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
    Sub Exemple()
     
    Dim i As Long
     
    ' on fait référence à la feuille avec un With
    ' ce qui évite de répéter cette référence jusqu'au End With
    With ThisWorkbook.Worksheets("Feuil1")
     
        ' on fait varier i de 1 à 10
        For i = 1 To 10
            ' ici ce sont les cellules de destination (de D11 à M11)
            .Cells(11, i + 3) = .Cells(i, 1)
                                ' ici ce sont les cellules sources (de A1 à A10)
        Next i
    End With
     
    End Sub

  6. #6
    Membre averti
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Avril 2015
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Avril 2015
    Messages : 13
    Par défaut
    joe,levrai

    je n'ai pas de cellules sources.
    Les valeurs A1, A2, ... sont des valeurs que j'introduis dans une saisie à partir d'une userform. Elles sont indexées de 1 à 10.
    Je voudrai que ces valeurs soient recopiées dans des cellules de la ligne 11 (D11 à M11).
    Voilà.
    Merci

  7. #7
    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
    Tes données A1 ... A10 sont inscrites où exactement ?

    ta question initiale laissait à entendre que tu parlais de Cellules A1 à A10

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

Discussions similaires

  1. [2008] Index sur données XML
    Par Badplayer1603 dans le forum Développement
    Réponses: 3
    Dernier message: 12/11/2014, 14h51
  2. [XL-2010] Boucle sur groupe de données et attribution d'un rang
    Par Fabfab750 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/11/2014, 12h17
  3. [WD19] Bug sur l'indexation d'un fichier de donnée HyperFile
    Par lololebricoleur dans le forum WinDev
    Réponses: 27
    Dernier message: 20/02/2014, 13h43
  4. Réponses: 0
    Dernier message: 30/03/2009, 19h45
  5. Réponses: 22
    Dernier message: 13/05/2008, 14h30

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