mada11
Messages postés7Date d'inscriptionmercredi 19 octobre 2005StatutMembreDernière intervention21 octobre 2005
-
20 oct. 2005 à 11:56
linasteph
Messages postés153Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 juillet 2009
-
20 oct. 2005 à 13:18
bonjour à tous,
nous devons réaliser une macro permettant de découper un classeur excel en autres plus petit.
Le gros classeur contient une colonne numero.
il est demandé à l'utilisateur de choisir un numero.
nous avons 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.
malheuresement seule la première ligne concernant cette vzleur est copiée.
comment faire pour récuperer toutes les données concernant la valeur donnée par l'utilisateur?
voici le code
Dim valeur As Integer
Dim i As Integer
Sub decoup()
valeur = InputBox("valeur:", "val", "")
For i = 1 To 2
If Cells(i, 1) = valeur Then
nom = Cells(i, 2)
prenom = Cells(i, 3)
repas = Cells(i, 4)
total = 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
linasteph
Messages postés153Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 juillet 20091 20 oct. 2005 à 13:18
je pense que c'est simplement parce que lorsque tu fais un workbook.add
et activecell.offset(..) tu te trouves dans le deuxième classeur (plus
petit) ensuite tu continues ta lecture mais on est toujours dans ce
même classeur. Il faudrait donc que tu reviennes dans ton premier
classeur pour continuer ta lecture.
Mais attention aussi car ton workbooks.add est dans ta boucle ce qui
donne aussi que tu vas créer un fichier pour chaque ligne correspondant
à la valeur entrée.