Macro pour déplacer données dans onglets

biafox

XLDnaute Nouveau
Bonjour !
Etant incapable de créer une macro, par manque de connaissances, j’en fait appel à l’un d’entre vous pour m’aider à en créer une qui permet de générer des déplacements de données en colonnes dans deux deux onglets différents.
Je pense que pour une personne maitraisant VBA, ça ne doit pas être compliqué.
Ma demande est la suivante :
Après avoir fait des saisies sur l’onglet principal, que je puisse de manière automatique envoyer les colonnes ( HV11 :HV29 ) (HX11 : HX29) (HZ11 :HZ29 )….jusqu’à la dernière colonne QJ11 :QJ39 dans l’onglet nommé « colonnes ».
Dans l’onglet colonnes, il faut placer la première colonne déplacée (hv11 :hv29) à K11 :K30, laisser une cellule vide et placer la colonne suivante en dessous, laisser une cellule vide et placer la colonne suivante en dessous et ainsi de suite.
La cellule K1 dans l’onglet « colonnes » définit la date de saisie des données et chaque fois que l’on active la macro, il faut mettre les colonnes au même endroit et déplacer les précédentes vers la colonne de droite.
Dans le même temps, déplacer dans l’onglet « couples », selon le même principe, la première valeur de la colonne HV10 avec HV11, laisser deux cellules vides, ensuite HV10 avec HV12, laisser deux cellules vides, ensuite HV10 avec HV13 etc…en formant les couples possibles de l’ensemble du tableau allant de HV10 à QJ29. Arrivé au dernier couple HV10 et Qj29, on recommence en partant de HV12 avec HV13 et ainsi de suite…
Dans le fichier joint, j’ai préparé les premiers emplacement pour les différents déplacements.

Merci d’avance à toute personne pouvant m’aider à avancer.
 

Pièces jointes

  • 01-SAISIE DONNEES TABLEAUX.xlsx
    146.1 KB · Affichages: 106

biafox

XLDnaute Nouveau
Re : Macro pour déplacer données dans onglets

Salut Yaloo, le forum

J'ai repris ton dernier fichier et ai effectué quelques tests d'utilisation et voici donc ce que ça donne :


Citation Envoyé par biafox Voir le message
A la question :
Si les chiffres à rentrer dans les cellules de K4 à K11 sont les mêmes dans les 2 onglets, on peut mettre une formule dans l'onglet "Couples" reprenant les chiffres rentrés dans l'onglet "Colonnes".
C’est une suggestion intéressante, car les chiffres seront les mêmes.
C'est fait, uniquement lorsque les chiffres sont modifiés ou créés dans "Colonne" cela copie dans "Couple"

ça fonctionne, mais lorsqu'on crée une autre colonne, il envoie bien dans la colonne K (K4 à K11 ) de l'onglet " couple ", mais quand il décalle la colonne de la position colonne K à la position colonne L, dans l'onglet couple, les données de la ligne 4 à 11 de la colonne déplacée disparaissent.

SINON

« Dans l'onglet "TABLEAU CLASSEMENT", un bouton qui regroupe l'envoi des données dans les onglets "Colonnes" et "Couples". Tu pourras supprimer les 2 autres. «
La fonction cumulée me convient, mais le seul truc que je n’ai pas réussi peut-être à expliquer, c’est qu’en fait, je voulais pour les couples…que l’on prenne en compte l’ensemble des 11 colonnes ce qui donnerait 24 090 couples (11 colonnes x 20 lignes = 220 cellules ce qui donne 220x(220-1)/2= 24 090 couples.
Référence ton post du 15/07/2012 20h37 …précédemment, on avait trop de données à traiter avec excel, c’est la raison pour laquelle, je suis passé à 11 colonnes pour arriver obtenir ces couples, car c’est l’approche qui m’intéresse le plus.
C'est fait, les couples sont créés pour toutes les lignes et colonnes, je prends les données dans l'onglet "Colonne" puis les travaille pour les mettre dans l'onglet "Couple"

Dans l'onglet "Colonnes"
Il apparait que lorsque l’on rentre un chiffre dans les cellules K4 à K11 le coloriage se fait dans ces cellules et aussi dans les cellules correspondantes aux chiffres sur l’ensemble de la colonne. Par contre si l’on veut changer de chiffres dans les cellules K4 à K11 ou les effacer tout simplement, la répercussion n’est pas faite sur l’ensemble de la colonne, les cellules coloriées précédemment restent coloriés… le souci c’est que je suis amené à modifier souvent les chiffres des cellules K4 à K11 dans une même colonne, ce qui fait qu’au bout d’un moment à force de modifications, on se retrouve avec trop de cellules coloriées et d’un point visuel, je ne perçoit plus les variations d’une colonne sur une autre, du coup si l’on peut pas supprimer une couleur à l’affichage lorsqu’on modifie un chiffre, il vaut mieux pour des aspects pratiques supprimer cette fonction de la macro et utiliser simplement manuellement la fonction « mise en forme conditionnelle ».
J'ai supprimé la coloration automatique.

La macro donne une valeur aux lignes composées de « A1 » « A2 » « A3 »…etc ( ces lignes peuvent être supprimées si cela permet de faciliter les choses et éviter les erreurs de calcul.
C'est modifié, aussi bien pour les A1, A2 etc... que pour les cellules vides.

La macro donne une valeur aux cellules vides.
Idem ci-dessus

LE calcul du nombre de cellules coloriées par ligne ne calcule que la dernière colonne et ne tient pas compte de toutes les colonnes existantes ( dans la pratique, j'aurais 10, 15 , 30 , 50 ...colonnes ).

La macro n°3 ne calcule que l’état de la dernière colonne (K).
Il serait pratique d’en rajouter une autre qui puisse faire le calcul de l’ensemble des colonnes. ( ça permet de faire des calculs en une fois pour un groupe de colonnes…la nuit par exemple juste avant d’aller au lit ).
Normalement non, je n'ai pas tout testé, mais comme il s'agit d'une formule qui prend la zone de la colonne K à la colonne UC, cela devrait être correcte.

Il s'avère que le calcul n'est effectué que pour la colonne K et toutes les colonnes qui sont insérées en L, M, N, etc...ne sont pas traitées.
JE pense qu'il faut laisser la macro 3 telle qu'elle est actuellement qui permet de traiter juste la colonne K et rajouter une macro qui calcule sur toutes les colonnes pour traiter en une fois 10,15,20...colonnes



La macro n°4 répond aux attentes.
Super

Dans la liste des états, on avait dit que l’on retiens pas les couples qui sont composés d’un chiffre et d’une cellule vide et que l’on gardait juste les couples avec deux cellules remplies…En fait il faudrait le faire mais uniquement pour les états 0-0.
Je n'ai pas compris..., ne serait-ce pas dans l'onglet "Colonnes listing états cellules"

Dans l'onglet "liste des états" partie liste des états 0-0, on peut retenir les couples dont l"un des deux est une cellule vide.


Dans l'onglet " colonnes listings états cellules ", il s'agît d'indiquer la liste des états o de l'onglet " colonnes " actuellement il reprend l'état de l'onglet " couples ".


Pour la dernière partie concernant les couleurs de l'onglet " Liste des états " partie de droite, j'ai pu voir qu'il y avait des couples qui étaient en couleur alors qu'ils n'apparaissaient dans aucune sélection de la partie C, F, I, L, O, mais c'est pas un point essentiel pour le moment...je n'ai pas vraiment cherché à voir d'où ça venait.


Voilà un peu ce que j'ai pu constaté sur quelques tests.

Au plaisir de te relir
 

Yaloo

XLDnaute Barbatruc
Re : Macro pour déplacer données dans onglets

Bonjour biafox; le forum,

Pourrais-tu mettre un fichier avec quelques exemples (voir très peu, mais représentatif de ton besoin) de façon à me rendre compte exactement de ce que tu veux, essaie de mettre plusieurs colonnes mais avec des chiffres différents, car actuellement toutes tes colonnes sont identiques et il est difficile, pour moi, de voir ce que tu expliques dans ton post ci-dessus.

Essaie peut-être de mettre une feuille " colonne" avec ce que tu obtiens avec les macros et une feuille "Colonne voulues" avec le résultat souhaité, ou bien en mettant une couleur différente. Idem pour les autres feuilles.

Je n'ai pas très bien compris, non plus, tes chiffres et couleurs dans les onglets "Colonne" et "Couple", je ne sais pas si les chiffres et les couleurs seront toujours les mêmes ou pas. Si tu pouvais être plus clair sur ce point, ce serait parfait.

Tout ça pour que je puisse ajuster les macros à tes besoins.

A te relire

Martial
 

biafox

XLDnaute Nouveau
Re : Macro pour déplacer données dans onglets

Bonjour Yaloo, le Forum

Pour essayer d’avancer et de faire comprendre ce que je recherche exactement, j’ai repris un exemple comme tu me l’as préconisé et vais essayer d’être le plus clair et le plus précis possible dans les explications.
C’est dans ces moments là que l’on se rend compte combien il est difficile d’être pédagogue.

J’ai joins un fichier pour servir d’exemple sur ce que je souhaite vraiment comme résultat sachant que tu as compris l'essentiel, mais soucis d'explication sur certains petits aspects...mais là, normalement en reprenant depuis le début en laissant de côté certains aspects futiles, ça devrait aller...

ONGLET « TABLEAUX «

Nous avons tableau TAB 1 en couleur verte, qui aura toujours la même forme, avec un contenu qui est alimenté par les tableaux qui sont en dessous ( TAB 2, TAB 3, TAB 4 etc…), qui peuvent être au nombre de 50, 100, 150 voir plus… ( dans l’exemple me suis limité à quelques uns pour ne pas alourdir la taille du fichier).
LE but consiste à prendre les données des colonnes du TAB 2 ( colonne D, colonne A1, colonne A2, jusqu’à colonne A10 et à les copier dans les colonnes correspondantes dans le tableau TAB 1
Dans TAB1, y a une colonne A11 dont la fonction est d’additionner les données de chaque ligne.
Lorsque la cellule de la colonne D est vide, alors la cellule de la colonne A11 doit être vide aussi. ( je sais pas quelle formule utiliser pour ça )

Après ça , on envoie les données du tableau TAB 1 dans l’onglet « Tableau classements » dans les colonnes correspondantes au tableau de la « zone A »
Une fois les colonnes copiées dans cette partie de la zone A, elles seront transférées dans les colonnes du tableau situé dans la partie « zone B »
LE tableau de la zone B, va classer les éléments de la colonne D, de la plus petite valeur à la plus grande valeur.

C’est ce classement que je souhaite voir transféré dans deux onglets différents pour pouvoir établir des calculs.

ONGLET COLONNES :

Reprendre chacune des colonnes du tableau de la » zone B » c'est-à-dire la colonne A1, A2, A3, jusqu’à A11 et les superposer les unes en dessous des autres en colonne groupée par dates et numéros de tableau comme dans l’exemple de l’onglet « Colonnes ».
Ces colonnes A1,A2,A3…A11 seront à placer à partir de K14, comme dans l’exemple.
Chaque fois que l’on crée un nouveau tableau, on insère les nouvelles colonnes au même endroit et on déplace les précédentes en colonne L, et ainsi de suite.
Pour chaque colonne crée, je mets des valeurs numériques entre K4 et K11.
Avec la mise en forme conditionnelle, je demande à colorier les cellules des colonnes dont la valeur correspond à celles qui sont en K4….K11 respectives.
A partir de là, il s’agît de créer une macro qui calcule le nombre de cellules non vides en couleur pour chacune des lignes sur la longueur des colonnes existantes.

ONGLET COUPLES :

Il s’agît de reprendre deux par deux en forme de couples, les données du tableau zone B de l’onglet « tableaux classement ». On considère toutes les colonnes A1 jusqu’à A11 ce qui nous fait 24 090 couples, quand on associe toutes les positions.
Ces couples seront disposés les uns en dessous des autres comme dans l’exemple de l’onglet ‘ » couples «
Pour chaque couple, on lui attribue un état :
0 si aucune cellule par les deux numéros du couple en couleur
1 si l’un des numéros du couple est en couleur
2 si les deux numéros formant le couple sont en couleur
LA macro à créer doit permettre d’indiquer l’état de chaque couple sur l’ensemble des colonnes existantes.

En position H et position I, on indique le plus petit état rencontré sur la ligne et le plus grand état rencontré sur la ligne qui compose les colonnes existantes.

En position K4 à K11 on met des valeurs qui vont servir à colorier avec la fonction Mise en forme Conditionnelle d’excel, les cellules correspondantes sur la colonne.
Chaque fois que l’on crée une nouvelle colonne à partir d’un nouveau tableau…on déplace la colonne située en K vers L, pour insérer la nouvelle colonne et ainsi de suite.


DECOMPOSITION DES COUPLES

Prendre chaque couple de la colonne K, et uniquement de la colonne K de l’onglet « couples », et l’envoyer dans l’onglet « Couleurs couples » dans une des 5 listes des états à savoir :
1- Si, le couple a un état mini = 0 et maxi = 0, alors le mettre dans la liste des états 0-0
2- Si, le couple a un état mini = 0 et maxi =1, alors le mettre dans la liste des états 0-1
3- Si, le couple a un état mini = 1 et maxi =1, alors le mettre dans la liste des états 1-1
4- Si, le couple a un état mini = 1 et maxi =2, alors le mettre dans la liste des états 1-2
5- Si, le couple a un état mini = 2 et maxi =2, alors le mettre dans la liste des états 2-2

On ne tient pas compte des couples qui sont en doubles quelle que soit sa position ( par exemple 1-2 et 2-1 sont identiques)
On ne tient pas compte des couples dont les deux cellules sont vides
On tient compte des cellules dont l’une des deux cellules est vide sauf pour les états de la partie 4 et 5 (c'est-à-dire états 1-2 et 2-2).



Partie onglet « COULEURS COUPLES »

Mettre en couleur les couples dans le tableau de droite en fonction la valeur de l’état du couple, par exemple si le couple 1-2 se trouve dans la liste des états 0-0 le mettre en une couleur correspondant à cette liste.
On peut garder les couleurs exemples du fichier ou en utiliser d’autres.


RAJOUT FONCTION PRATIQUE :


Pour résumer :
On crée le tableau avec les différentes données de l’onglet TABLEAUX, que l’on envoie dans l’on glet Tableau Classement à partir duquel, on crée des colonnes et des couples.

Ce que je voudrais c’est qu’une fois les colonnes et couples sont crées, revenir au premier onglet ‘Tableaux » , supprimer les données du tableau TAB 1 situé en B31, les remplacer par le tableau TAB 2 situé en B57 pour établir un nouveau calcul qui générera de nouvelles colonnes et couples…cela jusqu’à ce qu’il y ait plus de tableaux remplis de données.

LA taille du tableau sera toujours identique, ainsi que l’espacement d’un tableau à un autre.
On reprend les données du tableau ainsi que la cellule date, cellule du numéro du tableau et la cellule référence pour pouvoir les distinguer dans les différents onglets « colonnes » et « couples ».

Je sais, que je suis loin d’être doué dans les explications, mais là, normalement avec tout ce que tu as déjà fait auparavant, tu devrais comprendre à peu près ce que je cherche à faire.

En fait, j’ai juste rajouté la fonction pour automatiser le traitement des tableaux, fonction à laquelle j’avais pas pensé et qui serait super utile, pour mettre des tableaux en file et les traiter la nuit quand pas besoin de l’ordi pour faire autre chose, car les calculs s’avèrent assez longs à faire.

Si, tu as des précisions à demander…

Salutations.
 

Pièces jointes

  • Exemple type.xlsx
    52.5 KB · Affichages: 49
  • Exemple type.xlsx
    52.5 KB · Affichages: 51
  • Exemple type.xlsx
    52.5 KB · Affichages: 51

Yaloo

XLDnaute Barbatruc
Re : Macro pour déplacer données dans onglets

Bonsoir biafox, le forum,

Voici le fichier, remanié, sur lequel je travaille depuis le début, car tu as encore modifié des colonnes dans le nouveau.

Pour le 1 (je parle des boutons), c'était OK.

J'ai retravaillé le 2 et le 3 , j'y ai rajouté la mise en forme conditionnelle. Modifier les couleurs si besoin, choisir avec la macro du post #27.
Pour le 2 :
- J'ai ajouté la colonne K au somme des colonnes suivantes, j'ai fait des tests ça fonctionne.
Pour le 3 :
- J'ai modifié le copier/coller des chiffres en K4:K11.

Pour le 4 (Je n'ai pas changé grand chose), j'aurai besoin de renseignements :
- Dans le nouveau fichier exemple du post ci-dessus, il n'y a pas d'onglet "Colonnes listing états cellules", cet onglet est-il définitivement supprimer ?
- Tu me dis vouloir les couples avec une cellule vide (pour les couples 0-0, 0-1, 1-1), puis-je mettre un 0 à la place du vide ?

Pour le 5, pas de changement. Tu m'avais dis dans un précédent post que cela ne fonctionnait pas bien. Pourquoi ?

Pour tes autres demandes, on va attendre un peu. Je pense qu'il faut d'abord mener à bien ce que nous avons déjà commencé. Lorsque tout sera OK, on y verra plus clair (enfin moi).

Pour les formules dans "TABLEAUX", il vaudrait mieux utiliser :
=SOMME(D7:M7)
à
=SOMME(D7+E7+F7+G7+H7+I7+J7+K7+L7+M7)

Pour ça
Lorsque la cellule de la colonne D est vide, alors la cellule de la colonne A11 doit être vide aussi. ( je sais pas quelle formule utiliser pour ça )

Tu peux mettre en N7:
=SI(D7<>"";SOMME(D7:M7))

A te relire

Martial
 

Pièces jointes

  • STRUCTURE.xlsm
    742.2 KB · Affichages: 51
  • STRUCTURE.xlsm
    742.2 KB · Affichages: 53
  • STRUCTURE.xlsm
    742.2 KB · Affichages: 48
Dernière édition:

biafox

XLDnaute Nouveau
Re : Macro pour déplacer données dans onglets

Salut Yaloo, le Forum

Merci pour ta réponse.

En effet, tu as raison, vaut mieux procéder par étapes, réussir les fonctions les unes après les autres.

Donc, j’ai repris ton dernier fichier pour faire des tests et voilà ce que ça donne :

BOUTON 1 :

La fonction crée bien des colonnes et des couples sur lesquels, je n’ai pas constaté d’erreures.

BOUTON 2 :

A priori ça ne marche pas.

Pour le test, j’ai crée deux colonnes à partir de tableaux différents, j’ai donné une valeur à la cellule K4, K5, K6, K7 et avec la fonction « Mise en forme conditionnelle » j’ai demandé à colorier toutes les valeurs de la colonne K, correspondant aux cellules K4, K5, K6 et K 7.
J’ai fait pareil pour la colonne L.

En cliquant sur le « bouton 2 « , on est censé avoir sur la colonne « i », le nombre de cellules en couleur de chaque lignes.

En cliquant sur le « bouton 2 « un message d’erreur d’exécution apparaît qui dit :
Erreur d’exécution ‘5’
Argument ou appel de procédure incorrect.
Et propose de clique sur « fin » ou « débogage »

Si je clique sur « fin »
Il apparaît en fait que seulement les cellules de la colonne K sont comptabilisées et ne prend pas en compte les cellules de la colonne L.

Lorsqu’on clique de nouveau sur le « bouton 2 », il re comptabilise les cellules de la colonne K, en additionnant le résultat précédent, ce qui fait que si l’on clique 4 fois sur le « bouton 2 », on une valeur 4 alors que j’ai seulement deux colonnes. Entre chaque action il m’indique le message d’erreur.

JE pense que le plus simple c’est de supprimer l’histoire des couleurs dans la macro.

Il sera plus simple et moins problématique, que j’indique manuellement les cellules à colorier dans les différentes colonnes crées avec la fonction « Mise en forme conditionnelle ».

Du coup, c’est de rendre la macro la plus simple possible en ayant comme fonction que de comptabiliser les cellules en couleur pour chaque ligne.

Onglet « colonnes états cellules »

Pour le moment, on le supprime car il faut doublon avec le dernier onglet concernant les états des couples.

BOUTON 3

Tout comme le bouton 2, il produit une erreur à la fin du calcul de même nature.
Je pense que le mieux à faire, c’est de supprimer les fonctions liés à la couleur au sein de la macro et se contenter simplement d’indiquer la valeur des états pour chaque couple.

LE calcul doit se faire sur autant de colonnes existantes et non pas juste la colonne K.

J’ai constaté qu’il comptabilisait certains couples dont l’une des deux cellules est vide mais dont l’autre ne correspond pas à une des valeurs entre K4 et K11, comme étant état 1.

Je mettrais manuellement les couleurs avec la fonction « Mise en forme conditionnelle ».

BOUTON 4

Je n’ai pas vu d’erreurs sur cette fonction.

Faut juste supprimer l’envoi dans l’onglet « colonnes listing des états cellules » il ne sert à rien pour le moment juste à embrouiller.

BOUTON 5

J’ai pas trop décortiqué encore cette fonction étant pour le moment prioritairement axé sur les fonctions colonnes et couples.

J’ai juste constaté que sur la partie de droite, qu’un ou plusieurs couples sont en couleur, alors qu’ils sont non répertoriés sur la liste de gauche.
Il s’agît du couple 8-18 et 9-19

Peut-être y ‘en a d’autres, mais je n’ai pas vu.

Voilà, ce que j'ai pu constaté aux cours des quelques tests que j'ai effectué.

Salutations.
 

Yaloo

XLDnaute Barbatruc
Re : Macro pour déplacer données dans onglets

Bonsoir biafox, le forum,

Pour les boutons 2 et 3, j'ai séparé les procédures. J'ai fait des boutons 2' et 3' (ceux-ci sont pour la mise en forme conditionnelle).

Pour info, il n'est pas possible (à ma connaissance) de compter les couleurs, lorsque ce sont des couleurs avec mise en forme conditionnelle (MFC). Donc pour compter, je compare chaque cellule avec les cellules de K4:K11. Ca, je le fait pour la colonne K, s'il faut le faire pour toutes les colonnes, ça risque de prendre du temps. Sachant que à chaque fois que tu rajoutera une colonne, cela se rajoutera automatiquement aux colonnes précédentes.

Donc :
1 - on clique sur 1
2 - on rentre les chiffres dans l'onglet "Colonne" dans les cellules K4 à K11.
3 - on clique sur 2', cela mets les couleurs
4 - on clique sur 2, cela calcule le nombre de couleurs
5 - dans l'onglet "Couple", on clique sur 3', cela mets les couleurs
6 - on clique sur 3, cela calcule le mini et maxi des couleurs.
7 - comme d'hab on clique sur 4 et 5, pour envoyer les couples et mettre les couleurs.

Tu peux sauter les 3 et 5, et faire la MFC manuellement ou pas du tout puisque les calculs se font par comparaison.

Vois déjà si ça marche.

Le 3 est un peu long, j'essaie de réduire le temps de calcul, mais pour le moment ce n'est pas le top.

A te relire

Martial
 

Pièces jointes

  • STRUCTURE.xlsm
    737.9 KB · Affichages: 300
  • STRUCTURE.xlsm
    737.9 KB · Affichages: 346
  • STRUCTURE.xlsm
    737.9 KB · Affichages: 347

Yaloo

XLDnaute Barbatruc
Re : Macro pour déplacer données dans onglets

Re,

J'ai peut être trouvé une solution pour que la macro du bouton 3 soit plus rapide.

Fais des tests et dis moi si c'est mieux.

A+
Martial
 

Pièces jointes

  • STRUCTURE.xlsm
    739.3 KB · Affichages: 359
  • STRUCTURE.xlsm
    739.3 KB · Affichages: 356
  • STRUCTURE.xlsm
    739.3 KB · Affichages: 313

Yaloo

XLDnaute Barbatruc
Re : Macro pour déplacer données dans onglets

Bonsoir biafox, le forum,

J'avais un petit problème sur le bouton 3, cela doit être corrigé dans la macro ci-dessous.

Remplace la macro CoupleCouleurs par celle ci-dessous :

VB:
Sub CoupleCouleurs()
Dim DerL&, DerC&, c&, i&, t&, u&, ti
Application.ScreenUpdating = False
Application.EnableEvents = False
 WsCp.Activate
DerL = Cells(Rows.Count, 11).End(xlUp).Row
DerC = Cells(1, Columns.Count).End(xlToLeft).Column
   For i = 13 To DerL Step 4
     If Cells(i, 11) = Cells(4, 11) Or _
       Cells(i, 11) = Cells(5, 11) Or _
       Cells(i, 11) = Cells(6, 11) Or _
       Cells(i, 11) = Cells(7, 11) Or _
       Cells(i, 11) = Cells(8, 11) Or _
       Cells(i, 11) = Cells(9, 11) Or _
       Cells(i, 11) = Cells(10, 11) Or _
       Cells(i, 11) = Cells(11, 11) Then t = 1
     If Cells(i + 1, 11) = Cells(4, 11) Or _
         Cells(i + 1, 11) = Cells(5, 11) Or _
         Cells(i + 1, 11) = Cells(6, 11) Or _
         Cells(i + 1, 11) = Cells(7, 11) Or _
         Cells(i + 1, 11) = Cells(8, 11) Or _
         Cells(i + 1, 11) = Cells(9, 11) Or _
         Cells(i + 1, 11) = Cells(10, 11) Or _
         Cells(i + 1, 11) = Cells(11, 11) Then u = 1
   Cells(i + 2, 11) = t + u
   t = 0: u = 0
  Cells(i + 2, 6) = WorksheetFunction.Min(Range(Cells(i + 2, 11), Cells(i + 2, DerC)))
  Cells(i + 2, 7) = WorksheetFunction.Max(Range(Cells(i + 2, 11), Cells(i + 2, DerC)))
   Next i
Application.EnableEvents = True
Application.ScreenUpdating = True
Beep
End Sub

A te relire

Martial
 

biafox

XLDnaute Nouveau
Re : Macro pour déplacer données dans onglets

Salut Yaloo, le Forum

J’ai repris ton dernier fichier, avec lequel j’ai réalisé de multiples tests au cours de ces derniers jours en créant plusieurs colonnes et couples afin de vérifier si les fonctions des différentes macros répondent aux besoins.
Les problèmes, du moins certaines incohérences au niveau des calculs semblent persistantes et je pense que cela vient de l’intégration de la mise en forme conditionnelle dans les macros.

Par exemple :

Dans l’onglet colonne

J’ai crée deux colonnes complètes, ce qui est suffisant pour faire les tests.
J’ai rentré des valeurs dans les cellules K4, K5, K6 et K7 et ainsi que dans les celles L4, L5, L6 et L7 (seconde colonne). J’ai laissé les cellules 8, 9, 10 et 11 vides.
Dans la pratique, il arrivera fréquemment que je n’entre qu’une ou deux valeurs, pour rechercher une position ou des positions sur un ensemble de colonnes… mais dans l’absolu, j’aurais besoin de vérifier jusqu’à 8 valeurs, d’où le fait que j’ai 8 cellules ( K4 à K11).
J’ai avec la mise en forme conditionnelle sélectionné l’ensemble de la colonne K et demandé à mettre en couleur les cellules dont la valeur est égal à celle qui est dans les cellules K4, K5, K6 et K7.
J’ai fait pareil avec la seconde colonne L.
En cliquant sur le bouton 2, il affiche sur la colonne « i » le nombre de cellules en couleur, mais uniquement de la colonne K et ne tient pas compte de la colonne L et à priori des suivantes...
En cliquant une seconde fois sur le bouton 2, je constate qu’il recompte les cellules de la colonne K comme un compteur en additionnant le chiffre précédent au lieu de réinitialiser le compteur et de recompter dans le cas ou d’autres colonnes seraient crées…du coup, si j’appuie 40 fois sur le bouton 2, j’aurais une valeur de 40 aux endroits ou les cellules de la colonne K sont en couleur.
Ensuite pour le bouton 2’, la mise en forme conditionnelle ne se fait que sur la colonne K.
Dans la pratique, je peux être amené à créer 20, 50, 100 colonnes et faire l’analyse ultérieurement .
On retrouve le même type de problèmes dans l’onglet COUPLES.
Il ne gère que la colonne K et tient pas compte des autres colonnes.
Je pense que les mises en forme conditionnelles intégrées aux macros sont la source des problèmes et qu’il faut les supprimer complètement pour le moment en attendant de trouver une astuce du genre une macro, qui mettrait en couleur un ensemble de colonnes une fois celles-ci crées de manière indépendante…mais laissons ça de côté pour le moment.
Je propose de reprendre les choses en toute simplicité car les premières macros que tu avais écrites dans les premiers posts pour le tableau à 120 colonnes fonctionnaient…il est préférable de retravailler sur ces macros…adaptées au tableau à 11 colonnes….et voir après ce qui peut être ou pas amélioré en automatisant certaines tâches.

LA MACRO POUR LE CALCULCUL DU NOMBRE DE CELLULES EN COULEUR DANS LES COLONNES

Sub Colonnecouleurs()
WsCl.Activate
Dim DerL As Long, DerC As Long, c As Long, i As Long, t As Long
DerL = Cells(Rows.Count, 11).End(xlUp).Row
DerC = Cells(4, Columns.Count).End(xlToLeft).Column
For i = 10 To DerL
For c = 11 To DerC
If Cells(i, c) = Cells(4, c) Or _
Cells(i, c) = Cells(5, c) Or _
Cells(i, c) = Cells(6, c) Then t = t + 1
Next c
Cells(i, 9) = t
t = 0
Next i
End Sub




LA MACRO QUI PERMET DE CALCULER L’ETAT D’UN COUPLE SUR L’ENSEMBLE DES COLONNES

Sub couple()
WsCp.Activate
Dim DerL As Long, DerC As Long, c As Long, i As Long, t As Long, u As Long
DerL = Cells(Rows.Count, 11).End(xlUp).Row
DerC = Cells(4, Columns.Count).End(xlToLeft).Column
For c = 11 To DerC
For i = 11 To DerL Step 4
If Cells(i, c) = Cells(4, c) Or _
Cells(i, c) = Cells(5, c) Or _
Cells(i, c) = Cells(6, c) Then t = 1
If Cells(i + 1, c) = Cells(4, c) Or _
Cells(i + 1, c) = Cells(5, c) Or _
Cells(i + 1, c) = Cells(6, c) Then u = 1
Cells(i + 2, c) = t + u
t = 0: u = 0
Next i
Next c
End Sub


J’ai repris le fichier type ci-joint dont la structure va rester immuable dans le temps sur laquelle, je souhaiterais procéder comme suit :

ONGLET TABLEAUX

Voir partie 3 plus bas

ONGLET Tableau classement

Reprendre la dernière macro qui marche très bien et qui permet de créer à la fois les colonnes et les couples.

ONGLET Colonnes

Reprendre la macro « colonnes » citée plus haut qui permet de calculer les cellules en couleur de chaque ligne sur l’ensemble des colonnes existantes en la mettant à jour par rapport aux positions des cellules du tableau

ONGLET Couples

Reprendre la macro citée plus haut, qui permet de calculer l’état de chaque couple, sur l’ensemble des colonnes existantes.
Garder la macro qui permet d’envoyer la liste des couples dans l’onglet « couples en couleurs»
ONGLET Couleur couples
Reprendre la macro qui permet de colorier les couples en fonction de leurs états.


MODE DE FONCTIONNEMENT GLOBAL RECHERCHE :

1. Création des tableaux de données dans l’onglet TABLEAUX et envoyer les données dans l’onglet « Tableau classement « .

2. A partir de l’onglet « Tableau classement « créer les colonnes et couples.

3. Recommencer l’opération, jusqu’à épuisement des tableaux de données de l’onglet « TABLEAUX ».
A ce niveau là, il faut supprimer le tableau dont on vient de créer les colonnes et couples et le remplacer par le second tableau de l’onglet « TABLEAUX » et ainsi de suite…

4. A tout moment, mise en couleur des cellules de toutes les colonnes crées dans l’onglet « colonnes » et « couples » pour analyser. Cette partie se fera manuellement.


La fonction « =SI(D7<>"";SOMME(D7:M7)) « à mettre en N7 à N26 dans l’onglet « TABLEAUX « renvoie à une erreur chez moi.


J’ai bien essayé de modifier et d’adapter ces deux macros de ce post mais en vain…je crois que c’est pas demain la veille que vais m’en sortir avec le VBA.

Salutations.
 

Pièces jointes

  • Exemple type 1.xlsm
    64.3 KB · Affichages: 45
  • Exemple type 1.xlsm
    64.3 KB · Affichages: 47
  • Exemple type 1.xlsm
    64.3 KB · Affichages: 50

Yaloo

XLDnaute Barbatruc
Re : Macro pour déplacer données dans onglets

Bonsoir biafox, le forum,

Dans un précédent message, j'indiquais la marche à suivre pour arriver jusqu'au bout sans problème. :mad:

Donc en effet, si tu créé plusieurs colonnes et que tu lances les macros des boutons 2, 2', 3 et 3', forcément ça ne peut pas fonctionner.

Bonsoir biafox, le forum,

Pour les boutons 2 et 3, j'ai séparé les procédures. J'ai fait des boutons 2' et 3' (ceux-ci sont pour la mise en forme conditionnelle).

Pour info, il n'est pas possible (à ma connaissance) de compter les couleurs, lorsque ce sont des couleurs avec mise en forme conditionnelle (MFC). Donc pour compter, je compare chaque cellule avec les cellules de K4:K11. Ca, je le fait pour la colonne K, s'il faut le faire pour toutes les colonnes, ça risque de prendre du temps. Sachant que à chaque fois que tu rajoutera une colonne, cela se rajoutera automatiquement aux colonnes précédentes.

Donc :
1 - on clique sur 1
2 - on rentre les chiffres dans l'onglet "Colonne" dans les cellules K4 à K11.
3 - on clique sur 2', cela mets les couleurs
4 - on clique sur 2, cela calcule le nombre de couleurs
5 - dans l'onglet "Couple", on clique sur 3', cela mets les couleurs
6 - on clique sur 3, cela calcule le mini et maxi des couleurs.
7 - comme d'hab on clique sur 4 et 5, pour envoyer les couples et mettre les couleurs.

Tu peux sauter les 3 et 5, et faire la MFC manuellement ou pas du tout puisque les calculs se font par comparaison.

Vois déjà si ça marche.

Le 3 est un peu long, j'essaie de réduire le temps de calcul, mais pour le moment ce n'est pas le top.

A te relire

Martial

Sachant qu'au post #6 tu indiquais :

Re,

Je ne sais pas ce que tu as comme ordi, mais alors le miens à mis au moins 15 min pour donner le résultat.

Effectivement, le nombre de couples générés est assez important.
Le fait d'avoir un affichage réparti sur plusieurs colonnes n'est pas adéquat pour mes besoins d'autant plus que j'ai un temps d'attente en terme de calcul d'environ 15 min, j'ai seulement le temps de boire un café mais aussi d'aller faire mes courses ! :)
Du coup, la seule solution est de me restreindre et de rester sur la première ébauche que tu as fait en tenant compte simplement des colonnes une à une.
Je suis pas très calé en informatique, d'où ma présence ici sur ce site, mais je me demandais s'il était possible d'envoyer les données dans une base de données qui pourrait intégrer l'ensemble des couples sans avoir le soucis de limitation comme sur excel et dont l'index principal serait la date.

Mais, en tout cas, je te remercie pour ton aide.
Heureusement qu'il y a encore des gens qui comme toi, donne un coup de main aux uns et aux autres !
Encore merci

Donc, pas de problème, je vais modifier les macros pour coller à ton fichier, en prenant le calcul de toutes les colonnes (attention si ça rame). :eek:

Sinon, il y a la possibilité de regrouper toutes les macros en une seule, comme ça, ça te fait tout d'un coup pour chaque colonne (tableau).

Pour la formule, je n'avais pas pris le temps et la peine de la contrôler, donc je l'avais fait de tête, j'aurai pas dù (mea culpa) :mad:

Code:
=SI(C7<>"";SOMME(D7:M7);"")

ou

Code:
=SI(C7="";"";SOMME(D7:M7))

Bon je prends le temps de regarder ça à tête reposée et te fait ça ce WE.

A+

Martial
 

Yaloo

XLDnaute Barbatruc
Re : Macro pour déplacer données dans onglets

Salut biafox, le forum,

Voici la dernière mouture de ton fichier. (SVP ne change plus les cellules, colonnes etc...) ;)

Dans l'onglet TABLEAUX, je n'ai changé que les formules des cellules N7:N26, normalement c'est bon.

Dans l'onglet TABLEAU CLASSEMENT, rien de changé puisque la macro correspondait à ton attente.

Dans l'onglet COLONNES, j'ai modifié la macro du bouton 2, comme suit :
1 - Création de la mise en forme conditionnelle (sur toutes les colonnes)
2 - Calcule des chiffres colorés (sur toutes les colonnes)

Dans l'onglet COUPLES, j'ai modifié la macro du bouton 3, comme suit :
1 - Création de la mise en forme conditionnelle (sur toutes les colonnes)
2 - Calcule des couples colorés (sur toutes les colonnes) avec mise à jour des mini et maxi.
Je n'ai pas modifié la macro du bouton 4, puisqu'elle faisait ce que tu voulais.

Dans l'onglet COULEURS COUPLES, rien de changer puisque la macro correspondait à ton attente. Ou pas ?????

Pour le moment, je n'ai pas créé de macro pour l'onglet TABLEAUX. A voir plus tard.

J'espère que ça ira, j'ai fait pas mal de tests, j'ai l'impression que ça correspond à tes demandes.

A te relire

Martial
 

Pièces jointes

  • Exemple type 1.xlsm
    125.6 KB · Affichages: 57
  • Exemple type 1.xlsm
    125.6 KB · Affichages: 61
  • Exemple type 1.xlsm
    125.6 KB · Affichages: 57

biafox

XLDnaute Nouveau
Re : Macro pour déplacer données dans onglets

Salut Yaloo, le Forum !

J'ai pu voir ton dernier fichier avec tes modifications...et il semblerait malheureusement que cela ne fonctionne toujours pas.

Dans l'onglet Colonnes et l'onglet Couples...rien ne fonctionne !

J'ai joins un fichier avec plusieurs colonnes et couples complets crées à partir du tableau existant du premier onglet...(même en créant plusieurs fois les mêmes colonnes, cela ne doit pas altérer le résultat puisque ce qui est important c'est la valeur inscrite dans K4....Kx...)
ET en mettant une valeur dans K4, K5, K6, K7...on s'aperçoit que les fonctions de calculs ne fonctionnent pas et génèrent une erreur d'exécution.
Je pense encore une fois qu'il faut abandonner l'idée des mises en forme conditionnelles au sein de la macro et laisser cette tâche à l'utilsateur, même si cela s'avère peu pratique...du moment que le reste fonctionne...c'est l'essentiel !

Voilà ce qui peut être dit pour le moment...
Merci, à bientôt
 

Pièces jointes

  • Exemple type 1A.xlsm
    936.3 KB · Affichages: 307
  • Exemple type 1A.xlsm
    936.3 KB · Affichages: 353
  • Exemple type 1A.xlsm
    936.3 KB · Affichages: 356

biafox

XLDnaute Nouveau
Re : Macro pour déplacer données dans onglets

Re,

Je n'ai strictement rien touché aux macros....j'ai simplement crée une série de colonnes et lignes telles qu'elles devraient être en pratique...en lieu et place des quelques lignes et couples d'exemples de ton fichier 41.

A+
 

Yaloo

XLDnaute Barbatruc
Re : Macro pour déplacer données dans onglets

Re,

Bon alors, c'est très bizarre.

J'ai testé ton fichier (post #42) sans l'enregistrer sur mon PC (en l'ouvrant directement dans Excel), et là, ça ne fonctionnait pas.

Ensuite toujours en partant du site (post #42), j'ai enregistré le fichier sur mon bureau. J'ai ouvert le fichier, j'ai cliqué successivement sur le bouton 1, rempli les N° en K4:K9, j'ai cliqué sur le bouton 2 puis sur le bouton 3 et ça fonctionne correctement. C'est vraiment à n'y rien comprendre.

Peux-tu essayer cette manip. ?

1 - Enregistrer le fichier ci-dessous dans ton PC
2 - Cliquer sur le bouton 1
3 - Dans l'onglet COLONNE, remplir les chiffres que tu veux en K4:K11 ou moins
4 - Cliquer sur le bouton 2 (Vérifier si ça fonctionne)
5 - Dans l'onglet COUPLES, cliquer sur le bouton 3 (Vérifier si ça fonctionne)
ensuite le reste ça fonctionnait, tu peux quand même tester.

Dis moi ce qu'il en est.

A+

Martial
 

Pièces jointes

  • Exemple type 1A.xlsm
    144.3 KB · Affichages: 66
  • Exemple type 1A.xlsm
    144.3 KB · Affichages: 62
  • Exemple type 1A.xlsm
    144.3 KB · Affichages: 78

Discussions similaires

Réponses
2
Affichages
556

Statistiques des forums

Discussions
312 198
Messages
2 086 114
Membres
103 121
dernier inscrit
SophieS