benbenper
Messages postés6Date d'inscriptionmardi 18 juillet 2006StatutMembreDernière intervention18 juillet 2006
-
18 juil. 2006 à 11:44
drikce06
Messages postés2236Date d'inscriptionlundi 29 mai 2006StatutMembreDernière intervention29 mai 2008
-
18 juil. 2006 à 15:14
Bonjour
J'ai un tableau qui ressemble à cela :
PAGE PRINCIPALE :
Date / Nom / N° de compte / Valeur
ligne 1
ligne 2
ligne 3
etc.
Je souhaiterais classer les lignes en fonction des N° de comptes dans des onglets reprenant le n° de compte.
Par exemple : Prendre toutes les lignes avec le compte 62000 et les classer automatiquement dans l'onglet "62000". Prendre toutes les lignes avec le compte 625345 et les classer automatiquement dans l'onglet 625345, etc.
Comment faire pour automatiser cette tâche (En effet, j'ai de nombreux tableaux à retraiter) ?
drikce06
Messages postés2236Date d'inscriptionlundi 29 mai 2006StatutMembreDernière intervention29 mai 200810 18 juil. 2006 à 11:50
Tu fais une boucle sur ta colonne n° compte et chaque fois que le n° correspond à ce que tu veux tu copies la ligne dans l'onglet correspondant. Ou tu peut stocker les données dans un tableau mais la ça se complique!
drikce06
Messages postés2236Date d'inscriptionlundi 29 mai 2006StatutMembreDernière intervention29 mai 200810 18 juil. 2006 à 11:56
Exemple dans un textbox tu met le numéro de compte
i = 2 (1ere ligne de ta colonne "ici B" n° compte)
Do
nomfeuille=textbox1.value
if cstr(Range(("B" & i)).Value)=cstr(textbox1.value)
Row(i).select
Selection.copy
sheets(nomfeuille).select
ici tu fais une nouvelle boucle pour coller à la suite des données
Selection.paste
i = i + 1
Loop Until (Range(("B" & i)).Value) = "" Or IsEmpty(Range(("B" & i)).Value)
benbenper
Messages postés6Date d'inscriptionmardi 18 juillet 2006StatutMembreDernière intervention18 juillet 2006 18 juil. 2006 à 14:44
Donc si j'ai bien compris :
j'ai mon classeur excel avec une feuille récap pour les infos (lignes) que je veux dispatcher sur d'autre onglet (62, 63, 64, etc.). Les noms des feuilles correspondent aux noms des des informations recherchées
je créé une macro
Sub testclassement ()
Do
recap=textbox1.value
if cstr(Range(("62" & 2)).Value)=cstr(textbox1.value)
Row(2).select
Selection.copy
sheets(62).select
Selection.paste
i = i + 1
Loop Until (Range(("B" & i)).Value) = "" Or IsEmpty(Range(("B" & i)).Value)
Est ce bien cela . Je suis dsl de te déranger avec cela mais je n'y arrive tjs pas.
Merci pour ta dilligence
Vous n’avez pas trouvé la réponse que vous recherchez ?
drikce06
Messages postés2236Date d'inscriptionlundi 29 mai 2006StatutMembreDernière intervention29 mai 200810 18 juil. 2006 à 15:13
'Dans un premier temps voila le bout de code qu'il te faut pour trouver la première
'ligne qui correspond à ton n° de compte. Pour être clair je détaille tout.
'Tu entre le numéro de compte dans un textbox appeller textbox1
Sub
testclassement()Worksheets(
"FeuillePrincipale"
).Activate()
'en "B1" tu as N°compte le titre de ta colonne
'donc tu commence à faire la boucle à la ligne 2
'd'où
i = 2
'(1ere ligne de ta colonne "ici B" n° compte)
Dim
numcompte
As
String
numcompte = textbox1.Value
'Cette boucle va parcourir toute ta colonne jusqu'à ce qu'il y ait une cellule vide
'La boucle commence à Do et fini à Loop Until
Do
Worksheets(
"FeuillePrincipale"
).Activate()
'Cette condition compare les string de la cellue("B" & i) et de ta textbox1
'donc les deux numéros de compte
If
CStr
(Range((
"B"
& i)).Value) = numcompte
Then
'Si le numéro est le même tu selectionne la ligne
Row(i).Select()
'Tu copies la selection
Selection.Copy()
Worksheets(numcompte).Activate()
'Maintenant tu as peut-être déjà des données dans cette feuille
'il faut refaire une boucle pour copier après la dernière ligne