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 :

Limite de WorksheetFunction.Transpose


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 200
    Par défaut Limite de WorksheetFunction.Transpose
    Bonjour,

    J'aurais besoin de votre aide pour adapter la macro suivant :
    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
     
    Option Explicit
     
    Sub recap2()
    Dim Sources, Champs, oSrc, oEqu
    Dim i&, j&, k&, uoEqu2&, uChamps1&, uChamps2&
    '
       With Sheets("RECAP2") 'Feuille de destination
          Sources = Array("Feuil9", "Feuil10", "Feuil11") 'Données à regrouper
          Champs = .Range("A1").Resize(1, .Range("A1").End(xlToRight).Column).Value 'Intitulés des champs de la feuille RECAP1
          Champs = WorksheetFunction.Transpose(Champs)
          uChamps1 = UBound(Champs, 1)
          For i = 0 To UBound(Sources)
             oSrc = Sheets(Sources(i)).Range("A1").CurrentRegion.Value
             ReDim oEqu(1 To 2, 1 To 1)
             For j = 1 To UBound(oSrc, 2)
                For k = 1 To uChamps1
                   If oSrc(1, j) = Champs(k, 1) Then
                      ReDim Preserve oEqu(1 To 2, 1 To 1 + UBound(oEqu, 2))
                      oEqu(1, UBound(oEqu, 2)) = k
                      oEqu(2, UBound(oEqu, 2)) = j
                   End If
                Next k
             Next j
             uoEqu2 = UBound(oEqu, 2)
             For j = 2 To UBound(oSrc, 1)
                ReDim Preserve Champs(1 To uChamps1, 1 To 1 + UBound(Champs, 2))
                uChamps2 = UBound(Champs, 2)
                For k = 2 To uoEqu2
                   Champs(oEqu(1, k), uChamps2) = oSrc(j, oEqu(2, k))
                Next k
             Next j
          Next i
          Champs = WorksheetFunction.Transpose(Champs)
          .Range("A1").Resize(.Rows.Count, uChamps1).ClearContents
          .Range("A1").Resize(uChamps2, uChamps1).Value = Champs
       End With
    End Sub
    J'atteins la limite de la fonction, j'ai plus 80 000 lignes à traiter.
    J'ai pu voir qu'il y avait des solutions pour ne pas utiliser cette fonction, notamment avec un array à 2D mais je n'ai pas très bien compris comment l'utiliser.

    Merci par avance pour votre aide

  2. #2
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, de la lecture ici

Discussions similaires

  1. Limitation DirectSound
    Par Sub0 dans le forum DirectX
    Réponses: 1
    Dernier message: 28/02/2003, 11h21
  2. [Turbo Pascal] Limite de la mémoire virtuelle
    Par moon tiger dans le forum Turbo Pascal
    Réponses: 12
    Dernier message: 08/02/2003, 22h30
  3. Limiter le déplacement de la souris
    Par el_bouleto dans le forum C++Builder
    Réponses: 4
    Dernier message: 08/11/2002, 23h56
  4. Comment limiter les mouvements du curseur??
    Par scorpiwolf dans le forum C++Builder
    Réponses: 9
    Dernier message: 07/07/2002, 22h09
  5. [Comparatifs] Limites nombres tables et quantité de données
    Par benj63 dans le forum Décisions SGBD
    Réponses: 7
    Dernier message: 13/06/2002, 21h31

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