Bonjour à tous !
Je bosse sur une macro de tri depuis quelques jours déjà, et là j'avoue que je sèche...
Quand je l'execute, je me retrouve avec l'erreur "Next sans For", et je ne trouve pas d'où elle vient...
Pour contextualiser, il s'agit de trier des suggestions d'achats récupérées depuis un formulaire sur le site de la bibliothèque où je bosse... De les trier, les mettre dans un onglet selon la bibliothèque de référence puis d'enregistrer cet onglet dans un nouveau classeur.
J'ai utilisé une macro trouvé sur le net, elle n'est pas moi.
Merci à ceux qui prendront le temps de m'aider !
Je bosse sur une macro de tri depuis quelques jours déjà, et là j'avoue que je sèche...
Quand je l'execute, je me retrouve avec l'erreur "Next sans For", et je ne trouve pas d'où elle vient...
Pour contextualiser, il s'agit de trier des suggestions d'achats récupérées depuis un formulaire sur le site de la bibliothèque où je bosse... De les trier, les mettre dans un onglet selon la bibliothèque de référence puis d'enregistrer cet onglet dans un nouveau classeur.
J'ai utilisé une macro trouvé sur le net, elle n'est pas moi.
Merci à ceux qui prendront le temps de m'aider !
Code:
Sub TableauBib()
'Définit la taille du tableau et le type de données.
Dim Bib(5) As String
Dim i As Integer
Dim Chemin As String
Dim ligne As IntegerDim
controle As String
Application.ScreenUpdating = False
Chemin = "Y:\Bibliotheques\Suggestions d'achats\"
'Alimente les éléments du tableau
Bib(0) = "Bib Centrale - Adulte"
Bib(1) = "Bib Centrale - Image et sons"
Bib(2) = "Bib Centrale - Jeunesse"
Bib(3) = "Bib La Plaine"
Bib(4) = "Bib Lamartine"
'Boucle sur les éléments du tableau pour lire leur contenu
For i = 0 To 4
If Not Feuille_Existe(Bib(i)) Then
Sheets("Type").Copy After:=Worksheets(Worksheets.Count)
ActiveSheet.Name = Bib(i)
End If
'Sélection de la feuille Extract
Sheets("Réponses au formulaire 1").Select
Range("D2").Select
'Vérification du critère de sélection
Do While ActiveCell.Value <> "" 'Boucle tant qu'on ne tombe pas sur une cellule vide
If ActiveCell.Value Like Bib(i) Then
ligne = ActiveCell.Row 'on stoke le numéro de ligne
controle = Cells(ligne, 5).Value 'on stocke le numéro fi pour vérification des doublons
'copie de la ligne (colonne A à F)
Range(Cells(ligne, 1), Cells(ligne, 9)).Copy
Sheets(Bib(i)).Activate
Range("A1").Select
'cas numero 1 : aucune ligne n'a déjà été exportée
If ActiveCell.Offset(1, 0).Value = "" Then
ActiveCell.Offset(1, 0).Select
'controle doublon
If Application.WorksheetFunction. _
CountIf(Range("G:G"), controle) = 0 Then
'Pas de doublon : collage de la ligne
ActiveSheet.Paste
Sheets("Réponses au formulaire 1").Select
ActiveCell.Offset(1, 0).Select
'Doublon détecté
Else: GoTo doublon:
End If
'cas numero 2 : des lignes ont déjà été exportées
Else
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
'controle doublon
If Application.WorksheetFunction. _
CountIf(Range("G:G"), controle) = 0 Then
'Pas de doublon : collage de la ligne
ActiveSheet.Paste
Sheets("Réponses au formulaire 1").Select
ActiveCell.Offset(1, 0).Select
'Doublon détecté
Else: GoTo doublon:
End If
End If
Else
ActiveCell.Offset(1, 0).Select
End If
GoTo boucle:
doublon:
Sheets("Réponses au formulaire 1").Select
ActiveCell.Offset(1, 0).Select
boucle:
Loop
With ActiveWorkbook
.SaveAs Filename:=Chemin & "Suggestions" & ThisWorkbook.Sheets(Bib(i)).Range("D2")
Next i
End Sub