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 :

Transpose en incrémentant " Range " [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Géomaticien
    Inscrit en
    Mai 2006
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Géomaticien
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2006
    Messages : 56
    Par défaut Transpose en incrémentant " Range "
    Bonsoir,

    J'ai plusieurs fichiers Excel qui sont tous structurés de la méthode suivante :

    Nom de l'entreprise A4
    Ville (Province) Code Postal A5
    Pays A6

    Site Internet A8
    Information complémentaireA9
    Afficher la localisation sur la carteA10


    Je copie et transpose seulement les cellules A4:A6 de la feuille 1 vers les cellules A1:C1 de la feuille 2. Je répete la même étape pour chaque entreprise qui se trouve dans la feuille 1. Étant donnée que mes fichiers sont tous structurés de la même méthode, ma deuxième entreprise se trouve sur la ligne A12:A14, la troisième A20:A22 et etc... Donc j'ai toujours un gap de 8 entre mes entreprises.

    Parfois les fichier contiennent 500 lignes d'autre fois seulement 40 lignes. J'ai enregistré mes opérations dans un macro pour essayer de la répeter en boucle sans que j'aille toujours à faire copier/coller transposer des centaines de fois. Par contre, je ne suis pas trop certains de comment automatiser ma macro au maximun pour pas que j'aille à copier les opérations des centaines de fois en changeant toujours mon Range d'orgine et le Range de destinations.

    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
    Sheets("Feuil1").Select
    Application.CutCopyMode = False
    Range("A4:A6").Select
    Selection.Copy
    Sheets("Feuil2").Select
    Range("A1").Select
    Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
            False, Transpose:=True
     
    Sheets("Feuil1").Select
    Application.CutCopyMode = False
    Range("A12:A14").Select
    Selection.Copy
    Sheets("Feuil2").Select
    Range("A2").Select
    Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
            False, Transpose:=True
    Merci beaucoup de votre aide

  2. #2
    Membre Expert Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Par défaut
    Slt,
    voici un code qui fonctionne quel que soit le nombre de ligne:
    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
    Sub copiercoller()
    Dim x, y, derligne As Long
     
    y = 1
    derligne = Sheets("Feuil1").Range("A65536").End(xlUp).Row
     
    With Sheets("Feuil1")
    For x = 4 To derligne Step 8
    Sheets("Feuil2").Range("A" & y).Value = .Range("A" & x).Value
    Sheets("Feuil2").Range("B" & y).Value = .Range("A" & x + 1).Value
    Sheets("Feuil2").Range("C" & y).Value = .Range("A" & x + 2).Value
    y = y + 1
    Next x
    End With
     
    End Sub
    Je pense qu'il y a mieux, mais bon ça marche.
    A+

  3. #3
    Membre confirmé
    Homme Profil pro
    Géomaticien
    Inscrit en
    Mai 2006
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Géomaticien
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2006
    Messages : 56
    Par défaut
    Merci Beaucoup

    Ça fonctionne super bien

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

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