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 Boucle svp [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2015
    Messages : 3
    Par défaut Aide Boucle svp
    Bonjour,

    Je n'ai jamais pratiqué VBA et je n'arrive pas à adapter ce que je vois dans les tutos !
    VBA c'est pas mon truc mais pour une fois j'ai besoin de faire une boucle.

    Je voudrais transposer des lignes en colonnes.

    C2:H2 en I2:I8
    puis C3:H3 en I9:I15
    etc...

    Je commence à la ligne C2:H2 et je vais, pour cette fois, jusqu'à la ligne C8761:H8761.

    J'ai jamais fait de boucle... Help svp

    Voilà ma petite macro sans la boucle

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub Macro1()
    '
    ' Macro1 Macro
    '
     
    '
        Range("A1:G1").Select
        Selection.Copy
        Range("I1").Select
        Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
            False, Transpose:=True
        Range("I8").Select
    End Sub
    Merci d'avance pour votre aide

  2. #2
    Membre Expert Avatar de antonysansh
    Homme Profil pro
    Chargé d'études RH
    Inscrit en
    Mai 2014
    Messages
    1 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'études RH
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2014
    Messages : 1 115
    Par défaut
    Bonjour,

    Dans C2:H2, il y a 6 cellules et dans I2:I8 il y en a 7. En plus entre ce que tu expliques et ton test de macro, tu n'utilises pas les même range.
    Peux-tu préciser ce que tu veux vraiment ?

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2015
    Messages : 3
    Par défaut
    désolée je ne me suis pas bien relue...

    J'ai donc C2:H2 que je transpose en I2:I7
    je voudrais faire une boucle pour qu'ensuite C3:H3 se transpose à la suite dans ma colonne I soit I8:I13 et ceux jusqu'à la ligne C8761:H8761

    Merci beaucoup pour ta réponse

  4. #4
    Membre Expert Avatar de antonysansh
    Homme Profil pro
    Chargé d'études RH
    Inscrit en
    Mai 2014
    Messages
    1 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'études RH
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2014
    Messages : 1 115
    Par défaut
    Re,
    C'est déjà plus clair

    Vu le nombre de ligne à parcourir, on oublie ta macro car trop de select qui vont ralentir énormément le code.
    L'enregistreur est top pour apprendre mais il faut souvent retoucher un peu au code.
    Tu peux lire ce Tuto de Philippe Tulliez, il est génial !!!

    Pour ta problématique, il est plus simple de passer par des variables tableaux.
    Tu peux prendre un Range, le mettre dans un tableau et inversement. Excel va beaucoup plus vite de cette façon.

    Voilà le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub transpose()
        Dim rg As Range, t(), transpo(), i&, j&
        Set rg = [C2:H8761]
        ReDim transpo(rg.Columns.Count * rg.Rows.Count - 1, 0)
        t() = rg
        For i = 1 To rg.Rows.Count
            For j = 1 To rg.Columns.Count
                transpo((i - 1) * 6 + j - 1, 0) = t(i, j)
            Next j
        Next i
        Range(Cells(2, 9), Cells(rg.Columns.Count * rg.Rows.Count + 1, 9)) = transpo
    End Sub
    Ici je prends le range [C2:H8761] que je mets dans la variable tableau t() ensuite je transforme les 8760 lignes en une seule colonne qui est un tableau d'une seule colonne (lignes misent bout à bout dans transpo())
    et je mets transpo() dans le range [I2:I52561]

  5. #5
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2015
    Messages : 3
    Par défaut
    Merci beaucoup... c'est parfait

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

Discussions similaires

  1. Aide requête SVP!
    Par manucha dans le forum Langage SQL
    Réponses: 2
    Dernier message: 27/04/2007, 14h37
  2. Aide forum svp
    Par MORPHEUS50 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 27/03/2007, 13h43
  3. Aide doublons SVP
    Par seufer dans le forum Langage SQL
    Réponses: 6
    Dernier message: 12/07/2006, 15h45
  4. aide tableau svp
    Par mator dans le forum C
    Réponses: 3
    Dernier message: 11/06/2006, 15h54

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