Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Macro : traitement de questionnaires

7 réponses
Avatar
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!

7 réponses

Avatar
tissot.emmanuel
Bonjour,

Voila, ce serait déjà formidable et pour le reste je pourrais me
débrouiller
sans trop embêter la communauté !


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" a écrit dans le message de
news:
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!



Avatar
FFO
Salut Cyrille

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 !!!


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!



Avatar
cyrille
Tout d'abord, merci de ta réponse!

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 :)





Bonjour,

Voila, ce serait déjà formidable et pour le reste je pourrais me
débrouiller
sans trop embêter la communauté !


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" a écrit dans le message de
news:
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!








Avatar
cyrille
bonjour FFO!

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!



Salut Cyrille

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 !!!


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!





Avatar
tissot.emmanuel
Re,

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" a écrit dans le message de
news:
Tout d'abord, merci de ta réponse!

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 :)





Bonjour,

Voila, ce serait déjà formidable et pour le reste je pourrais me
débrouiller
sans trop embêter la communauté !


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" a écrit dans le message de
news:
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!










Avatar
FFO
Salut cyrille

Attention le code démarre sur le document Excel qui possède les colonnes à
démasquer
Celui-ci doit être le document actif au moment où l'on exécute le code

Est ce le cas ????

La ligne

Workbooks("Classeur2").Activate

Doit être actualisée avec le nom du document dans lequel on ajoute la feuille

Workbooks("traitement").Activate

Tiens moi au courrant


bonjour FFO!

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!



Salut Cyrille

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 !!!


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!







Avatar
lSteph
Bonjour,

;-) un oeil par là:

http://www.excelabo.net/excel/pap-range.php#selection

Amicordialement.

lSteph

On 13 juil, 17:36, FFO wrote:
Salut Cyrille

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 !!!


Bonjour à tous,

Voici le contexte de mon problème :

Des questionnaires sous forme Excel (une seule feuille) ont été env oyés à de
nombreuses personnes. Seules certaines personnes ont répondu, les aut res
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 Exce l de
traitement pour que le traitement soit fait.

Seulement, il faut que la feuille Excel créée ait le nom de la pers onne
exact pour que mes formules qui automatisent le traitement des question naires
marchent.
Concrètement, il me faut une macro que j'exécute sur le questionnai re
nouvellement reçu et qui effectue les opérations suivantes :

· Débloquer le classeur Excel protégé par mot de pass (mot de p ass = toto)
· Réafficher les colonnes cachées car les données que je dois u tilisées se
trouvent dans des colonnes cachées (j'ai utilisé des liste déroul ante pour
les questions, donc les réponses sont des chiffres que j'ai caché d ans la
colonne P)
· Aller chercher le nom de la personne dans le questionnaire : Cellul e G1
· Créer une nouvelle feuille Excel dans le classeur de traitement d es
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!