Autres Problème [résolu] de vba pour Synthèse dans une feuille voisine

Webperegrino

XLDnaute Impliqué
[EXCEL 2003]
Le Forum,
Bonjour,
Merci de porter une attention à la programmation ci-jointe dans le fichier sous la dénomination
VB:
Private Sub CommandButton1_Click()
...
End sub
Cette programmation fonctionne à merveille pour étudier la colonne A et la colonne B de la première feuille, pour extraire une synthèse en colonne B et C dans la deuxième feuille.
L’objectif est de reporter de façon similaire les contenus des autres colonnes C à Y de la première feuille en colonnes D à AW de la deuxième feuille.

Cela fait deux semaines que je galère à essayer formuler correctement mes boucles :
For colb = 23 To 25 pour la feuille BASE
For colr = 2 To 48 pour la feuille RESULTAT avec les lieux en colR et les personnes en colR + 1.

Les résultats sont catastrophiques et j’ai des messages d’erreur sur des formulations du genre
VB:
Res.Range(Res.Cells(40, colr), Res.Cells(fres, colr)).Select
'ou
Res.Range(Cells(40, colr), Cells(fres, colr)).Select
alors que la macro reconnaît bien colr (colonne étudiée dans Résult ) et fres (dernière cellule non vide en colonne étudiée dans Résultat).

Pouvez-vous me venir en aide ?

Avant de faire mes boucles, une répétition de la macro sur la zone colonnes S et T de la première feuille avec report en colonnes AJ et Ak de la Feuille RESULAT me produit une catastrophe quant à l’affichage, comme vous le constaterez.

Merci de me venir en aide,

Webperegrino
 

Fichiers joints

Patrice33740

XLDnaute Occasionnel
Bonjour,

En VBA, à de très très rares exceptions prés, il ne faut jamais utiliser .Select
et éviter d'utiliser Selection, ActiveCell, ...
 

Webperegrino

XLDnaute Impliqué
Le Forum,
Bonjour Patrice33710,
Il va me falloir donc reformuler tout cela (deux semaines de plus, vu mes connaissances en vba).

Et pourtant au début de la macro, rien qu'avec cette partie, cela fonctionne bien :
VB:
FB.Range(Cells(5, Colb), Cells(fBase, Colb)).Select 'Début de la liste à traiter
For Each cell In Selection
...
J'essaie de simplifier cela et reviens vers vous, si j'arrive à le faire ; je pense que d'autres personnes seraient intéressées par cette formulation pour synthèse.
Merci d'avoir répondu,
Cordialement
Webperegrino
 

Patrice33740

XLDnaute Occasionnel
Bonjour,

Il faudrait des explications, je ne comprend pas, ni le contexte, ni le but recherché :
- Qu'est-ce que cette pseudo base qui me semble très spécifique à un durée précise ?
- A quoi sert-elle ?
- Pourquoi la présenter ainsi, c'est très difficilement exploitable ?
- Sera-t-elle réutilisée ultérieurement ?
- Pourquoi le nombre de périodes par jour n'est-il pas constant ?
- Quelle est le résultat attendu (à quoi cela correspond-t'il) ?
 

Webperegrino

XLDnaute Impliqué
Bonjour Le Forum,

Bonjour Patrice 33740,
Merci encore de vous attarder sur cette conversation.

Cette application non confidentielle me sera d'une grande utilité dans l'application réelle bien plus importante en octets et qui contient des informations confidentielles. Ici les cellules sont remplies avec des valeurs non compromettantes.

Réponse à tes questions :
Je ne comprend pas, ni le contexte, ni le but recherché :
- Cette pseudo base : A quoi sert-elle ?

Dans le cadre d’une activité associative, en tant que bénévole, je viens aider mon épouse qui doit gérer avec l’application Excel la mise en place d’une équipe de 45 bénévoles qui vont occuper pendant une période d’une semaine environ, chaque jour, sur deux à quatre périodes (Matin, Après-midi, Première partie de soirée, Deuxième partie de Soirée), par groupe de une à trois personnes, une activité spécifique sur une plage horaire prédéfinie, et sur des lieux distinctes (pas toujours le même lieu chaque jour).

- Qu'est-ce que cette pseudo base qui me semble très spécifique à un durée précise ?
La base permet donc de placer chaque personne sur UN LIEU, pour UNE PLAGE HORAIRE, dans une PARTIE DE LA JOURNÉE, le JOUR EN QUESTION dans la PÉRIODE DE CETTE SEMAINE d’activité de la vie associative.

- Pourquoi la présenter ainsi, c'est très difficilement exploitable ?
J’ai pensé, au départ de la conception de cette application, que c’était la meilleure façon de placer les bénévoles et de choisir (Userform1) son lieu d’activité et son horaire (Urserform2) pour placer cela en concaténation du résultat dans la cellule sélectionnée pour l’attribution de son poste de travail.
Tout cela fonctionne bien depuis plusieurs années.

- Sera-t-elle réutilisée ultérieurement ?
Oui, l’activité est reprise chaque année, les jours, les lieux, les horaires, les prénoms des bénévoles peuvent évoluer, par redéfinition annuelle dans une feuille « Paramètres ».

- Pourquoi le nombre de périodes par jour n'est-il pas constant ?
Parce que certains jours il n’y a pas d’activité à attribuer à ces bénévoles en Matinée ou en après-midi.
Seuls Soirée 1 et Soirée 2 sont à occuper chaque jour de cette période définie en Paramètres.

- Quelle est le résultat attendu (à quoi cela correspond-t'il) ?

Le résultat attendu est une synthèse journalière d’extraction du tableau général de répartition pour une présentation limitée au lieux vraiment utilisés ce jour-là avec, à côté une concaténation (séparée par une virgule, ou par un retour à la ligne dans la cellule) des bénévoles qui y travailleront (soit seul, soit avec une autre personne, soit avec une troisième personne : en effet dans ce dernier cas un ancien, en tant que ‘Tuteur’, accompagne et forme un « bénévole débutant ».

Nouveau fichier joint :
Dans une troisième feuille, que j'invite à visiter, il y aurait possibilité de faire une autre synthèse si cela vous arrangerait dans la programmation.
Mon épouse aurait ainsi une "Feuille de route simplifiée des lieux et attributions de poste, simple et par "journée et Période" (Les lieux non occupés seraient aussi cachés au moment de l'impression de cette partie du planning.
Pour la programmation de cette page par VBA ça va être autre chose j'imagine... mais je trouve cette présentation plus réaliste pour mon projet.

De mon côté j’essaie d’améliorer le fonctionnement de la macro en cours, mais je continue à bloquer.

Cordialement,

Webperegrino
 

Fichiers joints

Webperegrino

XLDnaute Impliqué
Bonjour Le Forum,
Bonjour Patrice33740,
J'ai complètement revu mon projet : la synthèse se fera dorénavant par le choix d'une date et l'appui sur un bouton placés dans une nouvelle feuille3 dans le fichier rectifié ci-joint (cela peut aider d'autres personnes sur ce Forum).
La macro est un peu longue mais réagit rapidement.
Cela me convient ; la synthèse peut être imprimée et, à ce moment, les lignes non utilisées peuvent être momentanément cachées jusqu'au choix de date suivante.
Cordialement,
Webperegrino
 

Fichiers joints

ThomasR

XLDnaute Occasionnel
Hello,
C'est résolu pour finir ?
Si oui, n'hésite pas à updater ton premier poste avec l'info résolut dans le titre.

Bien à toi,
Thomas
 

Webperegrino

XLDnaute Impliqué
Le Forum,
Merci Patrice33740, Merci ThomasR,
J'espère avoir bien agi en applquant "NE PLUS SUIVRE" en haut à droite du fil.
Cordialement
Webperegrino
 
Dernière édition:

Discussions similaires


Haut Bas