VBA Excel - selection de valeurs distinctes - VB/VBA/VBS - Programmation
Marsh Posté le 03-06-2008 à 09:33:57
Bonjour,  
 
C'est possible en bouclant sur tes feuilles puis sur les lignes de la colonne contenant les contrats (si c'est le cas) puis en recherchant chaque pour contrat s'il existe dans la feuille de total et l'ajouter en fin de liste si ce n'est pas le cas. 
 
Ce que tu veux, c'est juste une liste de contrat ? pas de cumul de valeur ou autre ... 
 
Marsh Posté le 03-06-2008 à 10:26:52
Salut, qqs façon d'y parvenir 
Sur feuille récapitulative Données / Filtre élaboré avec extraction sans doublons 
via une collection avec une clé 
via http://www.mdf-xlpages.com/modules [...] d=2&lid=11
Marsh Posté le 03-06-2008 à 14:27:53
Bonjour et merci pour ta réponse, 
 
oui c'est bien juste une liste de contrats que je cherche à créer dans un premier temps. L'idée que tu me proposes est bien celle que j'avais en tête, sauf que... je ne sais pas la mettre en oeuvre... (je débute!) 
 
 
| DamienCYS a écrit : Bonjour,   | 
 
Marsh Posté le 03-06-2008 à 14:28:32
Bonjour, 
 
Merci pour ca, je vais regarder de ce coté 
 
Bonne journée 
 
| kiki29 a écrit : Salut, qqs façon d'y parvenir  | 
 
Marsh Posté le 03-06-2008 à 16:33:54
sinon 
voici le code 
 
Sub test() 
 
Dim nombredelignestotal, nombresdefeuilles As Integer 
 
nombresdefeuilles = Sheets.Count 
Worksheets.Add Count:=1, after:=Sheets(nombresdefeuilles) 
nombredelignestotal = 0 
 
For i = 1 To nombresdefeuilles Step 1 
 
'en imaginant que tes donnees sont dans la colonne A 
 
Sheets(i).Select 
nbredelignes = Sheets(i).Range("A6555" ).End(xlUp).Row 
Range(Cells(1, 1), Cells(nbredelignes, 1)).Select 
Selection.Copy 
Sheets(nombresdefeuilles + 1).Select 
Cells(nombredelignetotal + 1, 1).Select 
ActiveSheet.Paste 
nombredelignetotal = nombredelignetotal + nbredelignes 
 
Next 
 
Sheets(nombresdefeuilles + 1).Select 
nblign = Sheets(nombresdefeuilles + 1).Range("A6555" ).End(xlUp).Row 
Range("A1:A" & nblign).Select 
Selection.Sort Key1:=Range("A1" ), Order1:=xlAscending, Header:=xlGuess, _ 
    OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ 
    DataOption1:=xlSortNormal 
 
For i = nblign To 2 Step -1 
If Cells(i, 1) = Cells(i - 1, 1) Then 
Rows(i).Select 
Selection.Delete Shift:=xlUp 
End If 
Next 
 
End Sub
Marsh Posté le 03-06-2008 à 22:35:30
Je l'ai adaptée, ca marche parfaitement, merci beaucoup!! 
 
Merci à tous pour votre aide, 
Bonne soirée 
 
 
 
| 86vomito33 a écrit : sinon  | 
 
Marsh Posté le 02-06-2008 à 22:34:47
Bonjour à tous,
Je fais mes premiers pas avec VBA et je suis confrontée au problème suivant:
- j'ai un fichier de données mensuelles (avec un onglet de données par mois)
- les différents onglets regroupent des contrats, mais un contrat A peut figurer sur le fichier de janvier et pas sur celui de juin, ou au contraire un contrat B peut n'apparaître qu'en juillet
Ce que je cherche à faire:
- Créer une feuille supplémentaire qui me permette d'avoir une liste exhaustive des contrats apparaissant sur tous les onglets mensuels, mais sans les doublons.
- Ce que j'ai fait jusqu'ici: j'ai copié les données des différents onglets sur une feuille feuille puis supprimé les doublons. Problême: j'ai beaucoup trop de données! (environ 6000 par onglet)
Y aurait-il un moyen de coder cela avec vba? (sachant que, problème supplémentaire, je n'ai pas toujours le même nombre d'onglets de données: ca peut être du janvier à mars, comme du février à août...)
Je vous remercie d'avance pour votre aide précieuse!
Bonne soirée,
Lilly