mada11
Messages postés7Date d'inscriptionmercredi 19 octobre 2005StatutMembreDernière intervention21 octobre 2005
-
21 oct. 2005 à 08:21
mada11
Messages postés7Date d'inscriptionmercredi 19 octobre 2005StatutMembreDernière intervention21 octobre 2005
-
21 oct. 2005 à 16:07
bonjour à tous,
j'ai réalisé une macro permettant de "découper" un gros classeur excel en d'autres plus petits.
Le gros classeur contient une colonne numero.
il est demandé à l'utilisateur de choisir un numero.
j'ai fait une boucle qui permet de savoir si la valeur choisi par l'utilisateur est présente dans la colonne.
si c'est le cas, les données du gros classeur concernant cette valeur sont transmises à un classeur pus petit
.
or dans la boucle, un nouveau classeur se crée et les données concernant une même valeur se retrouvent chacune dans un classeur différent...
comment faire pour que les données concernant une même valeur se retrouvent dans un même classeur?
voici le code de la macro :
Dim valeur As Integer
Dim i As Integer
Sub recap()
valeur = InputBox("valeur:", "val", "")
Set nf = Workbooks("rrr.xls").Worksheets("recap")
For i = 2 To 4
If nf.Cells(i, 1) = valeur Then
nom = nf.Cells(i, 2)
prenom = nf.Cells(i, 3)
repas = nf.Cells(i, 4)
total = nf.Cells(i, 5)
Workbooks.Add
ActiveCell.Offset(0, 1) = nom
ActiveCell.Offset(0, 2) = prenom
ActiveCell.Offset(0, 3) = repas
ActiveCell.Offset(0, 4) = total
End If
Next
ActiveWorkbook.SaveAs Filename:=(valeur) & "_" & (ThisWorkbook.Name)
End Sub
valtrase
Messages postés937Date d'inscriptionlundi 19 janvier 2004StatutMembreDernière intervention 9 mai 20223 21 oct. 2005 à 09:34
Pour faire ce que tu dis tu doit enlever Workbooks.Add de ta boucle
Dim valeur As Integer
Dim i As Integer
Sub recap()
valeur = InputBox("valeur:", "val", "")
Set nf = Workbooks("rrr.xls").Worksheets("recap")
Workbooks.Add
For i = 2 To 4
If nf.Cells(i, 1) = valeur Then
nom = nf.Cells(i, 2)
prenom = nf.Cells(i, 3)
repas = nf.Cells(i, 4)
total = nf.Cells(i, 5)
ActiveCell.Offset(0, 1) = nom
ActiveCell.Offset(0, 2) = prenom
ActiveCell.Offset(0, 3) = repas
ActiveCell.Offset(0, 4) = total
End If
Next
ActiveWorkbook.SaveAs Filename:=(valeur) & "_" & (ThisWorkbook.Name)
End Sub