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 :

Automatiser une démarche [XL-2010]


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
    Chargé d'affaire
    Inscrit en
    Octobre 2015
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2015
    Messages : 48
    Par défaut Automatiser une démarche
    Bonjour à tous,

    Je sollicite aujourd'hui votre aide afin de pouvoir comprendre l'articulation d'une macro que je souhaite réaliser.
    En effet, ma macro est supposée réarranger des lignes en colonnes en respectant un certain ordre. Du coup, elle doit de temps en temps sauter une ligne et préserver certains numéros de colonnes.
    Je m'excuse pour mon explication assez floue. De fait, je vous joins mon début de code que je souhaiterais réaliser sur bien plus de lignes.
    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
    19
    20
    21
    22
    23
    24
    25
    26
    Sub rearangementcolonne()
    Dim i, j As Integer
    j = 6
        For i = 4 To 8
            Cells(i, 3).Value = Cells(3, j).Value
            Cells(i, 4).Value = Cells(3, j + 1).Value
            Cells(i, 5).Value = Cells(3, j + 2).Value
            j = j + 3
        Next i
    i = i + 2
    j = 6
        For i = 10 To 14
            Cells(i, 3).Value = Cells(9, j).Value
            Cells(i, 4).Value = Cells(9, j + 1).Value
            Cells(i, 5).Value = Cells(9, j + 2).Value
            j = j + 3
        Next i
    i = i + 2
    j = 6
         For i = 16 To 20
            Cells(i, 3).Value = Cells(15, j).Value
            Cells(i, 4).Value = Cells(15, j + 1).Value
            Cells(i, 5).Value = Cells(15, j + 2).Value
            j = j + 3
        Next i
    End Sub

  2. #2
    Membre éprouvé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2015
    Messages : 78
    Par défaut
    tu peux faire un copier/coller en transposé par exemple un truc dans ce genre là

    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
     
    sub testititoto()
    Dim i As Long
    Dim j As Long
     
    i = 4
    j = 3
        For i = 4 To Range("C4").End(xlDown).Row Step 6
        Range(Cells(i, j), Cells(i + 4, j + 2)).Copy
        Cells(i - 1, j + 3).PasteSpecial Paste:=xlPasteAll, Transpose:=True
        Next i
     
     
     
    End Sub
    Apres selon ton code t'as l'air d'avoir un nombre fixe de ligne, faut aussi voir comment tu l'arretes

  3. #3
    Membre Expert
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Par défaut
    Bonjour.

    Pour mettre les données d'une ligne sur 3 colonnes:

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    Sub tt()
     
    Set f = ActiveSheet
     
    Set orig = f.Range("$F$3:$T$15")
     
    Set dest = f.Range("C4")
     
    orig.Select
     
    coldest = dest.Column: lignedest = dest.Row
     
    NbrColonnesDestination = 3
     
    For ligne = 1 To orig.Rows.Count Step 6
     nbr = 0
     ok = fale
     
     For col = 1 To orig.Columns.Count
      orig.Cells(ligne, col).Select
     
      f.Cells(lignedest, coldest + nbr).Select
     
       f.Cells(lignedest, coldest + nbr).Value = orig.Cells(ligne, col).Value
     
       nbr = nbr + 1
     
       If nbr = NbrColonnesDestination Then
        nbr = 0
        lignedest = lignedest + 1
       End If
     
     Next
     lignedest = lignedest + 1
     
    Next
     
    End Sub

  4. #4
    Membre averti
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Octobre 2015
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2015
    Messages : 48
    Par défaut
    Tout d'abord merci à vous deux pour votre réponse aussi rapide. J'avoue que j'ai une légère préférence pour le code de Docmarti même si le tiens Minise m'avait donné une bonne piste! De fait, il ne me reste qu'une seule question avant que cette discussion soit résolue. En effet, je ne comprends pas comment pousser le code à répéter l'opération jusqu'à la ligne 556. Pourrais-je avoir une explication? Il me semble qu'il faille modifier la deuxième coordonnée du range appelé "orig" mais est-ce tout?

    Merci encore,

    Bien cordialement,
    Vbamateur.

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

Discussions similaires

  1. automatiser une naviguation internet
    Par Jitech dans le forum Réseau/Web
    Réponses: 2
    Dernier message: 22/06/2006, 12h49
  2. Automatiser une tâche
    Par Sun-Burst dans le forum Langage
    Réponses: 1
    Dernier message: 10/06/2006, 14h41
  3. automatiser une tache ttes les X minutes (un script en vbs)
    Par Corben dans le forum Autres Logiciels
    Réponses: 5
    Dernier message: 01/03/2006, 23h58
  4. Automatiser une connexion à un lecteur mappé
    Par Empty_body dans le forum Windows
    Réponses: 1
    Dernier message: 21/02/2006, 15h59
  5. [débutant] automatiser une requete
    Par banker dans le forum Access
    Réponses: 4
    Dernier message: 15/02/2006, 15h11

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