Bonjour à tous,
J'essaie de faire une macro pour réorganiser les résultats d'un formulaire Google Forms. Chaque ligne correspond à un participant et comprends plusieurs entreprises (avec les mêmes infos demandées).
Je souhaite donc déplacer les infos afin d'avoir au final un groupe de colonnes pour les infos des participants et un second groupe de colonnes pour celles des entreprises, cf. schéma ci-dessous :
J'ai donc pensé faire une macro avec une première boucle comprennant le balaye vertical (lignes) et un second pour celui horizontal (colonnes). Cependant lorsque je lance la macro, celle-ci ne traite qu'un groupe d'information pour UNE seule entreprise sans passer ni à l'entreprise suivante ni à la ligne suivante (participant)... Je ne comprends pas trop où est le problème ici
Sub RéorganisationFormulaireRéponses()
Dim ColEtu As Integer
Dim ColEnt As Integer
Dim NBRubrique As Integer
Dim NBEnt As Integer
Dim nbcells As Integer
Dim Lig As Integer
Dim Ent As Integer
Dim BeginEnt As Integer
Dim EndEnt As Integer
ColEtu = Sheets("CTRL rép. Formu").Range("ColEtudiant")
ColEnt = Sheets("CTRL rép. Formu").Range("ColEntre.")
NBRubrique = Sheets("CTRL rép. Formu").Range("NB.Rubriques")
NBEnt = Sheets("CTRL rép. Formu").Range("NB.Entreprises")
nbcells = Application.WorksheetFunction.CountA(Sheets("Réponses au formulaire").Range("$A:$A"))
Worksheets("Réponses au formulaire").Select
For Lig = 2 To nbcells
For Ent = 2 To NBEnt
BeginEnt = ColEtu + 1 + (Ent - 1) * ColEnt 'Début Colonne entreprise n
EndEnt = BeginEnt + ColEnt - 1 'Fin Colonne entreprise n
PasteLig = nbcells + 1 'Ligne où coller
PasteCol = ColEtu + 1 'colonne où coller
If Not Application.CountA(Range(Cells(Lig, BeginEnt), Cells(Lig, EndEnt))) = 0 Then
Range(Cells(Lig, BeginEnt), Cells(Lig, EndEnt)).Copy
Cells(PasteLig, PasteCol).Select
ActiveSheet.Paste
Range(Cells(Lig, 1), Cells(Lig, ColEtu)).Copy
Cells(PasteLig, 1).Select
ActiveSheet.Paste
End If
Next Ent
Next Lig
End Sub
Je vous remercie par avance de votre aide,
à bientôt,
Julien.