Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2021 Collecter des données et les restituer après mise en forme dans un autre onglet

JoBar57

XLDnaute Junior
Bonjour à tous,

J’aimerais compléter un vieux classeur en comptabilisant des données existantes dans « Feuil1 », à savoir les nombres contenus dans les différentes cellules éparpillées dans la feuille et surlignées en jaune, les comparer à la liste des nombres dans la plage (X77 à X84) de cette même feuille et enfin restituer la liste de ces nombres (peu importe le nombre de fois qu’ils apparaissent) dans le formulaire situé dans l’onglet « Résultat » avec la mise en forme telle qu’elle apparaît dans mon document.

J’ai créé une macro (pas la plus simple certainement) pour collecter les données, puis les trier et les rassembler dans la feuille de l’onglet « Résultat », et en utilisant une formule intermédiaire pour supprimer les cellules vides, mais je sèche sur la formulation en VBA pour incorporer dans cette feuille les libellés fixes ainsi que les variables dans les Cellules A3 et A7 afin que les lignes ne comportent pas de trous (puisqu'il ne faut mentionner que les nombres existants dans le Range("B8:B15")

Est-il possible de faire une macro plus « courte » (et plus "élégante") que ce que j’ai faite et de procéder sans l’étape intermédiaire dans l’onglet « calculs » ?

Si besoin de l’étape intermédiaire de calcul ou d’organisation dans l’onglet « Calculs », il faut utiliser la plage grisée car l’onglet comporte déjà des plages utilisées pour d’autres calculs ("A1 : AB48")

Merci à celui ou ceux qui prendrai(en)t le temps de se pencher sur la question.
 

Pièces jointes

  • Collecter données et restituer sous forme de fiche rédigée.xlsm
    33.5 KB · Affichages: 4
Dernière édition:

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re,
Avec ce que j'ai compris un essai en PJ.
( comme je n'ai pas compris votre page Résultat , j'en ai recréé une, mais les modifs sont simples puisque toutes les valeurs sont dans la macro qui est commentée )
 

Pièces jointes

  • Collecter données et restituer sous forme de fiche rédigée.xlsm
    36 KB · Affichages: 7

JoBar57

XLDnaute Junior
Bonjour,

Merci d'avoir pris le temps de regarder,

En fait il ne faut retenir que les valeurs 13,14,15,16,17,19,26,33, ne comptabiliser que le nombre de valeurs différentes dans ces 8 valeurs et ignorer les autres valeurs.
Puis retourner un formulaire identique à celui de l'onglet "Résultat" (partie grisée) en tenant compte des mentions explicatives surlignées en jaune.
Dans les ligne 3 et 7 de ce formulaire doit figurer la liste des différents nombres qui ont été collationnés.
De plus je dois préciser mon explication, les cases colorées en jaune sont les cases qu'il faut tester, mais celles qui seront à retenir (qui contiendront les valeurs 13,14,15,16,18,19,26,33) seront colorées en orange par la mfc (RGB 255,165,0) il me semble
La vérification se fera en fait sur la plage ("A39:AU71")
=> Pour la sélection c'est en effet bien plus simple que de faire une ligne par case testée, je n'avais pas pensé à utiliser la mfc !

Reste donc à éliminer les chiffres différents de la liste ci-dessus et restituer un formulaire comprenant les différentes lignes tel que mon modèle dans l'onglet "Résultat" (en grisé).
Surtout les lignes 3 et 7 que je ne sais pas comment concaténer pour ne pas laisser de tirets inutiles (voir l'onglet "Résultat ancien"), a restituer aussi par ordre croissant.
Et classement des nombres dans la colonne de B8 à B16 par ordre croissant

Voilà, j'espère avoir été suffisamment clair dans mes explications !?

Et merci encore pour la peine et le temps passé.

Nouveau fichier upgradé joint
 

Pièces jointes

  • Collecter données et restituer sous forme de fiche rédigée 2.xlsm
    39.5 KB · Affichages: 1
Dernière édition:

JoBar57

XLDnaute Junior
Bonjour,

J'ai avancé dans mon classeur qui fonctionne mais qui pourrait être nettement amélioré.
Mes connaissances VBA étant des plus primaires ma façon de collecter les infos est un peu fastidieuse et ma macro est tout sauf "propre" !

La méthode de collection des données figurant dans les différentes cases de "Feuil1" est beaucoup plus élégante que la mienne mais elle plante sur la ligne du tri par ordre croissant (voir pièce jointe).

Dans le classeur d'origine les valeurs à collecter seront surlignée en orange (MFC)

Dans la feuille en grisé dans l'onglet "Résultat ancien" j'ai eu recours à des formules dans les cases C8 à C16 parce que je ne sais pas comment utiliser la fin du code de Sylvanu (dans module 2) dans ma macro, ce qui m'empêche de tout remettre à zéro avec vba.

Voilà quelques explications supplémentaires.
Et l'exécution de ma macro rudimentaire permet de voir exactement le résulta souhaité.

Merci
 

Pièces jointes

  • Collecter données et restituer sous forme de fiche rédigée 3.xlsm
    42.7 KB · Affichages: 2
  • Débogage Collecte données.PNG
    52.6 KB · Affichages: 16

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonsoir,
Votre orange est RGB(255,192,0) et non RGB(255,165,0) comme dans votre code.
En PJ rectifié.
J'en ai profité pour mettre une gestion d'erreur, ce qui permet de sortir "proprement" en cas de pb..
 

Pièces jointes

  • Collecter données et restituer sous forme de fiche rédigée 3.xlsm
    34.1 KB · Affichages: 3

JoBar57

XLDnaute Junior
Bonjour,

Merci pour la correction couleur et la "réparation" du code.

J'ai adapté tout cela pour restituer le formulaire que je voulais, mais il me reste un problème c'est comment caser le résultat de la recherche des nombres dans la plage B8 à B15 pour les chiffres et C8 à C15 pour le résultat de rechercheV ?

J'ai essayé mais je me retrouve systématiquement avec une erreur (merci la gestion d'erreur).
Alors j'ai juste déplacé les résultats des colonnes F et G à L et M pour qu'ils n'empiètent pas sur le formulaire grisé.
Qu'est ce que j'ai loupé pour que ça ne fonctionne pas ?

Il ne reste plus que cette étape pour finaliser.

Accessoirement j'ai aussi voulu tenter de réduire la plage des recherches de ("A1:AZ79") à ("A39:AZ71") mais là aussi je me retrouve avec une erreur ...... et je ne comprend pas le pourquoi non plus !

Encore merci pour le temps et la peine.
 

Pièces jointes

  • Collecter données et restituer sous forme de fiche rédigée 3-2.xlsm
    45.6 KB · Affichages: 5

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…