VBA: modification d'un prgm.

  • Initiateur de la discussion Initiateur de la discussion gg77
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

G

gg77

Guest
Bonjour le forum

Encore merci au forum qui m'a permis de progresser en VBA même si le chemin reste encore long.

J'ai un petit souci au sujet d'une macro que je vous joints.

Dans mon classeur j'ai plusieurs feuilles et toutes les données de mes feuilles se retouve en feuille 1 lorsque j'appuie sur le bouton de commande.

Cependant je voudrais qu'il n'y ait pas que les 5 premières colonnes qui se transferent mais de la colonne A jusqu'à la colonne AD.

Et là je n'arrive pas à faire marcher la macro.
J'ai l'impression que ca ne marche plus si je lui demande de transferer trop de colonnes.

Merci pour votre aide.
[file] 🙂
 
ok j'ai réussi mais je pense que des que j'ai trop de lignes de rempli ca ne marche plus.
Je ne sais pas d'ou ca vient.
Peut etre dans la déclaration des variables.

j'ai modifier:

Tabtemp = .Range('A9:AD' & Derlgn).Value 'ici on rempli un tableau temporaire des valeurs _

ReDim Preserve TabRecap(34, x) 'on dimensionne un tableau

Si quelqu'un à une idée.

Merci
 
bonjour gg, JC


pour ta deuxieme modification, utilise plutot :

ReDim Preserve TabRecap(UBound(Tabtemp, 2), x)

un peu plus dynamique si un jour tu ajoutes des colonnes.

pour ton nouveau souci, combien de lignes à tu a traiter.

Il me semble que le transpose génere des problèmes au delà de 5000 lignes.


essayes de passer par une boucle pour tester.

salut
 
je peux avoir plus de 200 lignes par feuilles.

j'ai mis pour essayer 200 ou 300 lignes par feuilles et la ca coince.

je dois soit me limiter en nombre de colonnes soit en lignes.

Sinon pour la boucle je ne sais pas du tout comment on fait.

Tu peux m'orienter?

Merci Hervé
 
re


vite fait, mais alors tres vite fait :


remplace la fin de ton code apres Next Ws_Source par ceci :


With Ws_Base 'avec la feuille 'Feuil1'
Derlgn = IIf(.Range('A65536').End(xlUp).Row < 9, 9, .Range('A65536').End(xlUp).Row)
'on recherche la deniere ligne non vide _
si inférieure a 9 =9
'ici on va transposer le tableau monté a l'envers les lignes vont devenir les colonnes _

ReDim tablo(UBound(TabRecap, 2), UBound(TabRecap, 1))

For L = 0 To UBound(TabRecap, 2)
       
For x = 0 To UBound(TabRecap, 1)
                tablo(L, x) =
TabRecap(x, L)
       
Next x
Next L

.Range('A' & Derlgn).Resize(UBound(tablo, 1) + 1,
UBound(tablo, 2)) = tablo
End With


et ajoute dans les déclarations de variables : dim tablo()

salut
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
691
Retour