Distribution dans plusieurs feuilles
clavervba
-
Patrice33740 Messages postés 8400 Date d'inscription Statut Membre Dernière intervention -
Patrice33740 Messages postés 8400 Date d'inscription Statut Membre Dernière intervention -
Bonjour le forum,
pouvez vous m'aider s'il vous plait.
je voudrai écrire un code permettant de faire la distribution dans plusieurs feuilles, exemple.
dans la feuille 1 on a:
henry 1année
jerry 2 année
marc 1 année
fleurette 3 année
et je souhaite que les nom se reporte dans différentes feuilles a savoir:
-feuille 1 nommé: 1 année(marc/henry )
-feuille 2 nommé: 2 année (jerry)
-feuille 2 nommé: 3 année (fleurette )
s'il vous plait
pouvez vous m'aider s'il vous plait.
je voudrai écrire un code permettant de faire la distribution dans plusieurs feuilles, exemple.
dans la feuille 1 on a:
henry 1année
jerry 2 année
marc 1 année
fleurette 3 année
et je souhaite que les nom se reporte dans différentes feuilles a savoir:
-feuille 1 nommé: 1 année(marc/henry )
-feuille 2 nommé: 2 année (jerry)
-feuille 2 nommé: 3 année (fleurette )
s'il vous plait
2 réponses
-
Bonjour,
« pouvez vous m'aider s'il vous plait.
je voudrai écrire un code permettant de ... »
Pour ça pas de problème, le but de ce forum d'entraide est de donner des conseils et d'aider à résoudre votre problème, mais nous ne sommes par là pour faire le travail à votre place.
Pour cela, il y existe des professionnels qui ont besoin de travailler. Il n’est pas question pour nous bénévoles, de leur ôter le pain de la bouche.
Pour obtenir une réponse, il faut que vous fassiez vous-même des efforts. Montrez-nous ce que vous avez déjà fait en expliquant vos difficultés et vous mettrez toutes les chances de votre coté pour que quelqu’un vous réponde.
-
Bonjour,
je l'ai déjà fait, voir ci-dessous:
Dim j As Integer
Dim lastRow As Integer
Dim derniereligne As Integer
Sub ventilation()
Application.ScreenUpdating = False
For j = 4 To 7
Sheets(j).Select
lastRow = Range("a1000000").End(xlUp).Row
For i = lastRow To 6 Step -1 'parcourir des lignes en remontant vers le haut
Sheets(j).Select
Rows(i).Select
Selection.Delete shift:=xlUp
Next i
Sheets("Inscription").Select
derniereligne = Range("a1000000").End(xlUp).Row 'commencer a la fin pour remonter juska haut
For k = 2 To derniereligne
Sheets("Inscription").Select
If Sheets(j).Name = Cells(k, 7).Value Then '7 est la colone de la classe
Rows(k).Select
Selection.Copy
Sheets(j).Select
lastRow = Range("a1000000").End(xlUp).Row + 1
Cells(lastRow, 1).Select
ActiveSheet.Paste
End If
Next k
Next j
Sheets("Inscription").Select 'revenir sur la fiche inscription
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub
mais le souci est que lorsque j'execute cette macro sur mon PC je recoi un message d'erreur mais sur mon poste a bureau il passe.
-
-
Bonjour,
Il faut éviter les select et activesheet dans le code, essaies ceci :Sub ventilation() Application.ScreenUpdating = False For j = 4 To 7 lastRow = Sheets(j).Range("A" & Rows.Count).End(xlUp).Row For i = lastRow To 6 Step -1 Sheets(j).Rows(i).Delete shift:=xlUp Next i derniereligne = Sheets("Inscription").Range("A" & _ Rows.Count).End(xlUp).Row For k = 2 To derniereligne If Sheets(j).Name = Sheets("Inscription").Cells(k, 7).Value Then lastRow = Sheets(j).Range("A" & Rows.Count).End(xlUp).Row Sheets("Inscription").Rows(k).Copy Sheets(j).Cells(lastRow, 1) End If Next k Next j Sheets("Inscription").Select Application.ScreenUpdating = True End Sub
Cordialement
Patrice
PS : j"ai oublié :Dim j As Long Dim lastRow As Long Dim derniereligne As Long