Copilation d'onglets - probleme vba

  • Initiateur de la discussion Initiateur de la discussion mezou
  • 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 !

mezou

XLDnaute Nouveau
Bonjour tout le monde

J'ai réussi à retrouver parmis plusieurs informations ici ou là un code VBA qui m'intéresse au plus au point.
En fait, j'ai une dizaine d'onglets et je veux les mixer tout simplement.

Ce code est presque parfait, son seul défaut est qu'il ne prend pas en charge les hauteurs et largeurs des colonnes que j'ai personnalisé.

Etant une énorme quiche en VBA... si l'un d'entre vous peut m'aider !

Code :

Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim Feuille As Worksheet
Dim l As Integer

Sheets.Add ' ajout d'une feuille sur laquelle on combine toutes les autres
ActiveSheet.Name = "Nomenclature finale" 'cette feuille portera le nom final
k = 1 'initialisation de la variable k
l = 1 'initialisation de la variable l
For Each Feuille In ActiveWorkbook.Worksheets 'on repete l'action pour toutes les feuilles du fichier
If Feuille.Name <> "Nomenclature finale" Then 'sauf sur la feuille finale

i = Feuille.UsedRange.Rows.Count 'nombre de lignes de la feuille actuelle
j = Feuille.UsedRange.Columns.Count 'nombre de colonnes de la feuille actuelle
Feuille.Select 'on selectionne la feuille

If l = 1 Then 'si première feuille on copie aussi les titres (première ligne)
Range(Cells(1, 1), Cells(i, j)).Select
Else
Range(Cells(2, 1), Cells(i, j)).Select 'sinon on copie qu'à partir de la ligne 2
End If

Selection.Copy

Sheets("Nomenclature finale").Select
Cells(k, 1).Select 'on sélectionne la première ligne vide

ActiveSheet.Paste 'on colle les données de la feuille actuelle
If l = 1 Then
k = k + i 'k = première ligne vide
Else
k = k + i - 1


---
Un grand merci par avance,
Mezou
 
Re : Copilation d'onglets - probleme vba

Bonjour et merci pour cette réponse rapide.

Alors par contre je n'y connais absolument rien en VBA et du coup je ne sais pas quoi faire avec ton code...

Il doit remplacé le mot Paste dans mon code ?
Si c'est le cas, bah j'ai du loupé un truc parceque marche pas !

Désolé..
 
Re : Copilation d'onglets - probleme vba

Bonjour mezou, jp14,_Une proposition, si toutes les feuilles ont les mêmes hauteurs / Largeurs de colonnes / Lignes, remplace
VB:
Sheets.Add
par
VB:
Sheets(1).Copy After:=Sheets(Sheets.Count)
Cordialement_Edit _ Et ajoute
VB:
ActiveSheet.Cells.Clear
 
Dernière édition:
Re : Copilation d'onglets - probleme vba

Merci pour cette infos, ca m'a effectivement fait pour les largeurs de colonnes
Par contre ce n'est pas le cas pour la hauteur !

Et maintenant j'ai la feuille qui se retrouve en dernier et non en 1er avec ton code

Mais c'est presque bon ! Merci 🙂
 
Re : Copilation d'onglets - probleme vba

Au passage, il y a t'il une possibilité pour qu'il y ai une mise à jour automatique de la macro ?

Si je modifie un élément dans un onglet, que je n'ai pas à re éxectuer la macro mais que cela soit fait en automatique !
 
Re : Copilation d'onglets - probleme vba

Oui justement, ci-joint

Les cases sont vides car confidentiel mais peu importe de toute manière ca ne change pas mon problème qui est plus un pb de format que de case
 

Pièces jointes

Dernière édition:
Re : Copilation d'onglets - probleme vba

Yes l'affichage fonctionne merci !

Par contre comme j'avais indiqué plus haut, avec vos modifications, mon onglet final apparait en tout dernier au lieu du premier ! N'y a t'il pas moyen de le remettre en 1ere position ?

Quid de la possibilité de rendre la mise à jour automatique selon si on modifie des éléments dans les autres onglets ou si on ajoute une ligne ?

Merci en tout cas
 
Re : Copilation d'onglets - probleme vba

Re_Une proposition : la feuille est refaite à chaque activation de celle ci_ au prix d'une légère modification de la feuille1_ Plus de cellule fusionnées sur celle ci mais un alignement horizontal sur plusieurs colonnes (voir format de cellule)_Il ne faut pas supprimer les 5 premières lignes de la nomenclature._Testé avec 32 feuilles_ c'est acceptable_Cordialement
 

Pièces jointes

Dernière édition:
Re : Compilation d'onglets - probleme vba

Punez c'est quand même cool VBA !
Faudrait que je demande une formation 😛
C'est pas mon coeur de métier mais c'est tellement utile...

Bref tout ça pour dire merci c'est ce que je souhaitais faire mais (comme il faut toujours un mais...)
du coup je comprends encore moins certaines choses ^^

Alors j'ai compris que tu avais figé justement les 5 premières lignes mais, ça été fait de quelle manière ?
Parceque du coup avec la mise à jour automatique (magique !) je ne peux plus intégrer d'autres éléments... j'essayé de décaler le 1er "rows" à 11 mais après avec la mise à jour auto ça me supprime des choses.. 😕

Ci-joint ce que je veux dire en xls

En tout cas merci beaucoup pour ton aide
 

Pièces jointes

Re : Copilation d'onglets - probleme vba

Bonjour mezou, jp14, le fil, le forum

@mezou:
J'ai ouvert ton dernier fichier et je dois avouer que quelque chose m'échappe.
Si j'ai bien compris il est inutile de copier les en-têtes des tableaux sur la récap puisque tu les supprimes ensuite...
Si tu veux manipuler ta récap après l'importation, la proposition automatique ne conviens pas. Il faut revenir à un lancement "manuel" du traitement (un bouton ou un double click en A1 par exemple).

Un feuille récap avec un en-tête et les données des tableaux dessous te conviendrait il ?
Faut il ajouter le nom des feuilles au dessus de chaque tableau ?
Tu ajoute des chiffres au dessus du premier en-tête, ne peux t on pas les trouver lors du traitement ?

Il serait nécessaire que tu montre et / ou explique extactement la feuille telle qu'elle doit se présenter une foi le traitement terminé.

Le VBA "c'est cool" mais il est impératif de savoir quoi lui faire faire....

A te re lire

P.S Je ne peux pas faire de posts corrects depuis mon PC pro

Cordialement
 
Re : Copilation d'onglets - probleme vba

Ce qui est dans ton dernier ficher (test(3)) est ce qu'il me faut, ne prends pas en compte mon dernier fichier..

Je voulais "simplement" y ajouter un en-tête comme tu le dis avec certaines données (à obtenir lors du traitement si possible effectivement ca serait le top).

Je recherche justement les conditions qui me permettent de calculer ça mais, comme je te disais, je n'arrive pas à corriger certains aspect de ton fichier puisque je ne peux pas intégrer cet en-tête. A chaque mise à jour automatique, il m'écrase tout.

Ci-joint un fichier qui montre le rendu après traitement (en espérant qu'il soit plus parlant)


Merci encore une fois pour ton aide.

Cordialement,


EDIT : La formule en D6 serait =SOMME((FREQUENCE(C:C;C:C)>0)*1)+1 dans ce cas mais en réalité j'ai des références avec des lettres et si je fais une frequence prenant les lettres, il me prendra les titres avec...
 

Pièces jointes

Dernière édition:
- 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

Discussions similaires

Réponses
8
Affichages
275
Réponses
4
Affichages
585
Réponses
5
Affichages
716
Réponses
10
Affichages
538
  • Question Question
Microsoft 365 Erreur UBound
Réponses
4
Affichages
221
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Réponses
8
Affichages
655
Retour