Extraires et copier des cellules texte d'une colonne filtrée
Bonjour
J'ai développé pour mon employeur un tableur passablement complexe avec Excel 2003 pour administrer des sondages et compiler automatiquement des réponses dans des rapports prédéterminés qui se déclinent ensuite par période, vendeur, etc. (plusieurs jours de programmation VBA). L'employeur a insisté pour que ce soit en Excel et non en Access. C'est comme ca.
La structure de la feuille qui fait office de table de données va ainsi (extrêmement simplifié pour les fins de ce post)
Nom du répondant
Nom du vendeur
Telephone
Période
(etc.)
Réponse qst 1
Commentaires qst1
Réponse qst 2
Commentaires qst 2
Commentaire général.
Bon, en réalité, il y a 87 colonnes, des centaines d'enregistrements (lignes) et jusqu'à une possibilité de 5 critères actifs autofiltre.
L'un des rapports compile les réponses numériques et calcule les moyennes pour les enregistrements filtrés (avec usage de la fonction sous.total). Il est ainsi possible de calculer des résultats pour un vendeur, une période ou n'importe quel autre critère et de le comparer à la moyenne de l,ensemble des vendeurs. Cette partie là, ca va.
Mon défi est le suivant: on me demande de produire maintenant un rapport personnalisé pour chacun des vendeurs qui reprendrait et présenterait un à la fil de l'autre, les commentaires pour chaque question, quand il y a des commentaires.
Par exemple:
Rapport vendeur Jean Tartempion
Date: septembre à novembre 2009
Question 1: 3,4 / 4,0 Moyenne: 3.2 / 4.0
Commentaires:
- Très bon vendeur
- Accueillant
- Pantalon sale
Question 2: 4,0 / 4,0 Moyenne: 3,8 / 4,0
Commentaires:
(aucun)
Question 3: 2,1 / 4,0 Moyenne: 2,9 / 4,0
- Plutôt pressé comme vendeur !
- -----------------------
Sachant que les commentaires sont inscrits dans différentes cellules (plusieurs enregistrements de nombre variable), dans différentes colonnes (plusieurs questions), et quand le filtre est actif sur un vendeur, plusieurs des cellules commentaires demeurent vides (aucun commentaire souvent), j'ai pensé automatiser un copie collé vers un nouvelle feuille qui reprendrait, à la queue leu-leu, les commentaires en faisant sauter les lignes vides. C'est dans cette direction que je travaille pour l'instant. (Je suis cependant ouvert à d'autres avenues si elles sont simples et expéditives)
Mon problème est que je ne sais pas comment faire avec VBA pour, à partir d'une feuille déjà filtrée sur plusieurs colonnnes, copier que les cellules filtrée et non vides d'une colonne en particulier, et de les copier, sans ligne inutile (vide), dans une nouvelle feuille. Quelqu'un peut-t-il m'aider ? Google m'amène sur différentes pistes mais pas de solution précise pour l'instant.
Merci de vos suggestions !
- Messages
- 9'245
- Excel
- Vista Office 2007FR
- Inscrit
- 08/12/2007
- Emploi
- retraité Sce.Méthodes
Bonjour et bienvenue,
Mon problème est que je ne sais pas comment faire avec VBA pour, à partir d'une feuille
déjà filtrée sur plusieurs colonnnes, copier que les cellules filtrée et non vides d'une
colonne en particulier, et de les copier, sans ligne inutile (vide), dans une nouvelle feuille.
Quelqu'un peut-t-il m'aider ? Google m'amène sur différentes pistes mais pas de solution
précise pour l'instant. exemple: pour extraire les colonnes C:D (filtrées) vers la feuille "bibi"
Sub ExtraitPlageFiltrée()
''Macros par Claude Dubois pour "lavrendi" le 12 Nov 09
Dim Lg As Integer
Application.EnableEvents = False
Lg = Range("b65536").End(xlUp).Row
Range("c8:d" & Lg).SpecialCells(xlCellTypeVisible).Copy
With Sheets("bibi")
.Range("A65536").End(xlUp)(2).PasteSpecial Paste:=xlPasteValues
.Range("a:a").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End With
Application.CutCopyMode = False
Application.EnableEvents = True
End Sub .Range("a:a").SpecialCells(xlCellTypeBlanks).EntireRow.Deletecette ligne supprime lignes entières si vide en colonne A
Amicalement
Claude.