RechercheV boucle VBA
Fermé
Joannie
-
Modifié par Joannie le 30/03/2010 à 04:45
zebulon2503 Messages postés 1228 Date d'inscription jeudi 17 avril 2008 Statut Membre Dernière intervention 11 février 2016 - 30 mars 2010 à 14:17
zebulon2503 Messages postés 1228 Date d'inscription jeudi 17 avril 2008 Statut Membre Dernière intervention 11 février 2016 - 30 mars 2010 à 14:17
2 réponses
zebulon2503
Messages postés
1228
Date d'inscription
jeudi 17 avril 2008
Statut
Membre
Dernière intervention
11 février 2016
110
30 mars 2010 à 13:47
30 mars 2010 à 13:47
Salut
Dans quelle colonne mets tu les références, les données à copier, les affectation et les données copiées ?
Donnes moi ces infos et je peux te filer la macro magique :-)
A+
Dans quelle colonne mets tu les références, les données à copier, les affectation et les données copiées ?
Donnes moi ces infos et je peux te filer la macro magique :-)
A+
zebulon2503
Messages postés
1228
Date d'inscription
jeudi 17 avril 2008
Statut
Membre
Dernière intervention
11 février 2016
110
Modifié par zebulon2503 le 30/03/2010 à 14:20
Modifié par zebulon2503 le 30/03/2010 à 14:20
Bon, en attendant ta réponse, voici le code en partant du principe que les affectations sont remplies automatiquement.
Pour le test, j'ai mis les références colonne A, les données en B, les affectations en D et les données recopiées en E.
Sur la ligne 1, il y a le titre de la colonne (Référence, Données...), donc les données à traiter commencent à la ligne 2.
Tu peux lancer la macro à partir d'un bouton présent dans la même feuille si tu veux, le code pour ce bouton sera (si tu gardes le nom de ma procédure et avec un bouton nommée "CommandButton_1") :
Dis moi si ca te va.
A+
Les cons peuvent avoir l'air intelligent à première vue... Heureusement pour eux que la vitesse de la lumière est supérieure à celle du son.
Pour le test, j'ai mis les références colonne A, les données en B, les affectations en D et les données recopiées en E.
Sur la ligne 1, il y a le titre de la colonne (Référence, Données...), donc les données à traiter commencent à la ligne 2.
Sub test() Application.ScreenUpdating=False Dim Reference as String Dim Last_Row As Double Cells(1, 1).Activate Do Until ActiveCell.Value = "" ActiveCell.Offset(1, 0).Select Loop Last_Row = ActiveCell.Row For i = 2 To Last_Row Cells(i, 1).Activate Reference = ActiveCell.Value Cells(2, 4).Activate Do Until ActiveCell.Value = "" ActiveCell.Offset(1, 0).Select Loop ActiveCell.Value = Reference ActiveCell.Offset(0, 1).Select ActiveCell.Value = Cells(i, 2).Value Next i Range(Cells(2, 4), Cells(Last_Row - 1, 5)).Select Selection.Sort Key1:=Range("D2"), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal For i = Last_Row To 2 Step -1 Cells(i, 4).Activate If ActiveCell.Value = Cells(i - 1, 4).Value Then ActiveCell.ClearContents End If Next i End Sub MsgBox("Action Completed")
Tu peux lancer la macro à partir d'un bouton présent dans la même feuille si tu veux, le code pour ce bouton sera (si tu gardes le nom de ma procédure et avec un bouton nommée "CommandButton_1") :
Private Sub CommandButton1_Click() Call test End Sub
Dis moi si ca te va.
A+
Les cons peuvent avoir l'air intelligent à première vue... Heureusement pour eux que la vitesse de la lumière est supérieure à celle du son.
30 mars 2010 à 13:50