Macro : traitement de questionnaires
Le
cyrille
Bonjour à tous,
Voici le contexte de mon problème :
Des questionnaires sous forme Excel (une seule feuille) ont été envoyés à de
nombreuses personnes. Seules certaines personnes ont répondu, les autres
répondront tout au long de l’année.
J’ai déjà élaboré un moyen de traitement des questionnaires déjà reçus
lequel fonctionne et est automatisé. Il suffit de copier coller le
questionnaire nouvellement reçu dans une des feuille du classeur Excel de
traitement pour que le traitement soit fait.
Seulement, il faut que la feuille Excel créée ait le nom de la personne
exact pour que mes formules qui automatisent le traitement des questionnaires
marchent.
Concrètement, il me faut une macro que j’exécute sur le questionnaire
nouvellement reçu et qui effectue les opérations suivantes :
• Débloquer le classeur Excel protégé par mot de pass (mot de pass = toto)
• Réafficher les colonnes cachées car les données que je dois utilisées se
trouvent dans des colonnes cachées (j’ai utilisé des liste déroulante pour
les questions, donc les réponses sont des chiffres que j’ai caché dans la
colonne P)
• Aller chercher le nom de la personne dans le questionnaire : Cellule G1
• Créer une nouvelle feuille Excel dans le classeur de traitement des
données (traitement.xls) , la renommer par le nom de la personne.
• Retourner dans le classeur questionnaire reçu, copier toutes les cellules
à gauche et au dessus de la cellule P205
• Coller toutes ces cellules dans la feuille Excel créée précédemment (nom
de la personne)
Voila, ce serait déjà formidable et pour le reste je pourrais me débrouiller
sans trop embêter la communauté !
Merci par avance!
Voici le contexte de mon problème :
Des questionnaires sous forme Excel (une seule feuille) ont été envoyés à de
nombreuses personnes. Seules certaines personnes ont répondu, les autres
répondront tout au long de l’année.
J’ai déjà élaboré un moyen de traitement des questionnaires déjà reçus
lequel fonctionne et est automatisé. Il suffit de copier coller le
questionnaire nouvellement reçu dans une des feuille du classeur Excel de
traitement pour que le traitement soit fait.
Seulement, il faut que la feuille Excel créée ait le nom de la personne
exact pour que mes formules qui automatisent le traitement des questionnaires
marchent.
Concrètement, il me faut une macro que j’exécute sur le questionnaire
nouvellement reçu et qui effectue les opérations suivantes :
• Débloquer le classeur Excel protégé par mot de pass (mot de pass = toto)
• Réafficher les colonnes cachées car les données que je dois utilisées se
trouvent dans des colonnes cachées (j’ai utilisé des liste déroulante pour
les questions, donc les réponses sont des chiffres que j’ai caché dans la
colonne P)
• Aller chercher le nom de la personne dans le questionnaire : Cellule G1
• Créer une nouvelle feuille Excel dans le classeur de traitement des
données (traitement.xls) , la renommer par le nom de la personne.
• Retourner dans le classeur questionnaire reçu, copier toutes les cellules
à gauche et au dessus de la cellule P205
• Coller toutes ces cellules dans la feuille Excel créée précédemment (nom
de la personne)
Voila, ce serait déjà formidable et pour le reste je pourrais me débrouiller
sans trop embêter la communauté !
Merci par avance!

Poser une question


Livré brut de fonderie et donc à peaufiner.
Sub ATester()
Dim Quest As Workbook, NomFichier
Dim NomPersonne As String
Dim FeuSource As Worksheet, FeuDest As Worksheet
On Error Resume Next
Set Quest = Workbooks("ClasseurSource")
On Error GoTo 0
If Quest Is Nothing Then
Err.Clear
NomFichier = Application.GetOpenFilename("Microsoft Excel (.xls),
.xls")
If VarType(NomFichier) = vbBoolean Then
Exit Sub
Else
Set Quest = Workbooks.Open(NomFichier)
End If
End If
Set FeuSource = Quest.Worksheets(1)
With FeuSource.Cells
.EntireColumn.Hidden = False
End With
NomPersonne = FeuSource.Range("G1").Value
Set FeuDest = Workbooks("Traitement.xls").Worksheets.Add
On Error Resume Next
FeuDest.Name = NomPersonne
On Error GoTo 0
If Err.Number > 0 Then
MsgBox NomPersonne & " est invalide comme nom de feuille dans ce
classeur."
Quest.Close False
Application.DisplayAlerts = False
FeuDest.Delete
Application.DisplayAlerts = True
Exit Sub
End If
FeuSource.Range("A1:P205").Copy FeuDest.Range("A1:P205")
End Sub
Cordialement,
Manu/
"cyrille" news:
Ma proposition :
Nom = ActiveWorkbook.Name
ActiveWorkbook.Unprotect ("toto")
Cells.Select
Selection.EntireColumn.Hidden = False
Workbooks("Classeur2").Activate
Sheets.Add.Name = Workbooks(Nom).ActiveSheet.Range("G9")
Workbooks(Nom).ActiveSheet.Range("A1", "O204").Copy
ActiveSheet.Paste
J'espère qu'elle te conviendras
Dis moi !!!
J'ai essayé de mettre ton code et ca ne marche pas.
Quand je colle le code dans VBA et que j'execute la macro, il me demande d
ouvrir le questionnaire de la personne. Je le fais, mais il me replique que
cette ligne ne marche pas.
.EntireColumn.Hidden = False
Voila :)
Sub FFO()
Nom = ActiveWorkbook.Name
ActiveWorkbook.Unprotect ("toto")
Cells.Select
Selection.EntireColumn.Hidden = False
Workbooks("Classeur2").Activate
Sheets.Add.Name = Workbooks(Nom).ActiveSheet.Range("G9")
Workbooks(Nom).ActiveSheet.Range("A1", "O204").Copy
ActiveSheet.Paste
End Sub
En rentrant ce code sous VBA, il me donne une erreur et me dit que cette
ligne en particulier ne marche pas :
Selection.EntireColumn.Hidden = False
Pour info, les colonnes cachées sont les suivantes : M, N , O , P
merci de ta réponse!
J'avais omis la protection:
Set FeuSource = Quest.Worksheets(1)
With FeuSource
.Unprotect "toto"
.Cells.EntireColumn.Hidden = False
End With
Devrait fonctionner.
Cordialement,
Manu/
"cyrille" news: