Macro vba
Résolu
RomainG
-
ed555 Messages postés 61 Date d'inscription Statut Membre Dernière intervention -
ed555 Messages postés 61 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Ceci est un problème relativement similaire à une question que j'ai posé hier. J'ai donc essayé de m'inspirer de l'aide que l'on m'a apporté hier mais en vain.
Col 1 Col 2
1 1
1 1
1 2
1 2
2 3
2 3
2 4
3 5
3 5
3 5
3 6
3 6
Je souhaiterai créer deux autres colonnes à partir de ces deux premières. La colonne 4 serait la colonne 2 mais sans doublon. Et je souhaiterai qu'en colonne 3 apparaisse les valeurs de la colonne 1 correspondant au valeur de la colonne 2. Pour plus de clarté le résultats de mon exemple serait comme ci dessous :
Col 3 Col4
1 1
1 2
2 3
2 4
3 5
3 6
Pouvez m'aider à la création d'une macro vba pour la réalisation de la colonne 3. (La colonne 4 n'étant qu'un simple comptage classique).
Sub moyenne_lot()
i = 1
Do While Cells(i, 2) <> ""
valeur = Cells(i, 1)
lot = Cells(i, 2)
Do While Cells(i + 1, 1) = valeur
lot = valeur
i = i + 1
Loop
Loop
End Sub
Voici ce que j'ai essayé de faire mais sans grand résultats.
Merci à vous.
Romain
Ceci est un problème relativement similaire à une question que j'ai posé hier. J'ai donc essayé de m'inspirer de l'aide que l'on m'a apporté hier mais en vain.
Col 1 Col 2
1 1
1 1
1 2
1 2
2 3
2 3
2 4
3 5
3 5
3 5
3 6
3 6
Je souhaiterai créer deux autres colonnes à partir de ces deux premières. La colonne 4 serait la colonne 2 mais sans doublon. Et je souhaiterai qu'en colonne 3 apparaisse les valeurs de la colonne 1 correspondant au valeur de la colonne 2. Pour plus de clarté le résultats de mon exemple serait comme ci dessous :
Col 3 Col4
1 1
1 2
2 3
2 4
3 5
3 6
Pouvez m'aider à la création d'une macro vba pour la réalisation de la colonne 3. (La colonne 4 n'étant qu'un simple comptage classique).
Sub moyenne_lot()
i = 1
Do While Cells(i, 2) <> ""
valeur = Cells(i, 1)
lot = Cells(i, 2)
Do While Cells(i + 1, 1) = valeur
lot = valeur
i = i + 1
Loop
Loop
End Sub
Voici ce que j'ai essayé de faire mais sans grand résultats.
Merci à vous.
Romain
A voir également:
- Macro vba
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Jitbit macro recorder - Télécharger - Confidentialité
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Macro word - Guide
- Excel compter cellule couleur sans vba - Guide
4 réponses
salut,
"je souhaiterai qu'en colonne 3 apparaisse les valeurs de la colonne 1 correspondant au valeur de la colonne 2"
qu'entends-tu par là ? j'ai du mal à voir...
"je souhaiterai qu'en colonne 3 apparaisse les valeurs de la colonne 1 correspondant au valeur de la colonne 2"
qu'entends-tu par là ? j'ai du mal à voir...
C'est vrai que c'est un problème assez dur à expliquer par écrit. Je vais essayer d'être plus précis.
On considère que la colonne 4 est la même colonne 2 mais sans doublon (elle est donc forcément plus petite). La colonne 2 est associé à des chiffres de la colonne 1.
Je souhaiterai que dans la colonne 3 les chiffres soient ceux de la colonne 1, qui étaient affecté à ceux de la colonne 2.
Suis je assez clair? J'ai rédigé l'exemple pour que ce soit plus explicite mais s'il faut encore détailler certains point, je t'écoute.
Merci
Romain
On considère que la colonne 4 est la même colonne 2 mais sans doublon (elle est donc forcément plus petite). La colonne 2 est associé à des chiffres de la colonne 1.
Je souhaiterai que dans la colonne 3 les chiffres soient ceux de la colonne 1, qui étaient affecté à ceux de la colonne 2.
Suis je assez clair? J'ai rédigé l'exemple pour que ce soit plus explicite mais s'il faut encore détailler certains point, je t'écoute.
Merci
Romain
Bonjour
je ne connais pas le vrai type de ref1,ref2 donc...
liste1 et liste2 doivent rester en variant
mais peut-^tre pouvait on le faire + simplement avec des filtres (si j'ai le temps, je regarderais)
Michel
Sub apurer() Dim derlig As Long, cptr As Long Dim dico As Object Dim ref1, ref2 Dim liste1, liste2 derlig = Cells(Cells.Rows.Count, 2).End(xlUp).Row Set dico = CreateObject("scripting.dictionary") For cptr = 1 To derlig ref1 = Cells(cptr, 2) ref2 = Cells(cptr, 1) If Not dico.exists(ref1) Then dico.Add ref1, ref2 End If Next liste2 = dico.items liste1 = dico.keys Application.ScreenUpdating = False Range("C1:D40000").Clear Range("C1:C" & dico.Count) = Application.Transpose(liste2) Range("D1:D" & dico.Count) = Application.Transpose(liste1) End Sub
je ne connais pas le vrai type de ref1,ref2 donc...
liste1 et liste2 doivent rester en variant
mais peut-^tre pouvait on le faire + simplement avec des filtres (si j'ai le temps, je regarderais)
Michel