Macro excel

clairettepoot Messages postés 3 Date d'inscription jeudi 17 décembre 2009 Statut Membre Dernière intervention 28 juillet 2010 - 28 juil. 2010 à 10:50
Chouchensb Messages postés 64 Date d'inscription jeudi 3 mars 2005 Statut Membre Dernière intervention 2 septembre 2010 - 28 juil. 2010 à 22:17
Bonjour,

J'ai un problème avec les macro sur excel,
en fait je voudrai mettre le contenu de plusieurs cellule dans une seule avec des conditions, seulement quand je tape le code, j'ai seulement la dernière cellule qui s'affiche dans ma cellule de destination.

Est ce que quelqu'un pourait me renseigner svp!!??

Je Vous mets le code:
Sub CP1()
Dim i

Sheets("Feuil1").Select
For i = 3 To 64
If Range("C" & i).Value "CP" Then Sheets("Feuil2").Range("B4") Range("B" & i).Value
Next i

ActiveWorkbook.Save
End Sub



Merci bcp d'avance :)

4 réponses

Chouchensb Messages postés 64 Date d'inscription jeudi 3 mars 2005 Statut Membre Dernière intervention 2 septembre 2010
28 juil. 2010 à 11:58
Si tu veux rechercher les cellules qui contiennent "CP" en majuscule et concaténer les données dans la cellule B4, change...

If Range("C" & i).Value "CP" Then Sheets("Feuil2").Range("B4") Range("B" & i).Value

par...

If instr(1,Range("C" & i).Value,"CP") <>0 Then Sheets("Feuil2").Range("B4") = Sheets("Feuil2").Range("B4") & " " & Range("C" & i).Value
0
clairettepoot Messages postés 3 Date d'inscription jeudi 17 décembre 2009 Statut Membre Dernière intervention 28 juillet 2010
28 juil. 2010 à 13:20
MERCI BCP!!!!!!!!!!!!!!!
tu m'aide énormément merci!!!!
j'ai juste modifié un petit truc mais c'est exactement ce que je voulais!!!!!

merci!!!!!! :)
bonne aprèm!
0
clairettepoot Messages postés 3 Date d'inscription jeudi 17 décembre 2009 Statut Membre Dernière intervention 28 juillet 2010
28 juil. 2010 à 16:02
J'ai une autre question, comment fais t'on pour faire tourner les macro en continu??
et pour rafraichir la page à chaque fois??
j'espère que tu comprends mes questions.

puis si on modifie une cellule dans une feuille, que ça se mette à jour dans l'autre?

merci d'avance!
0
Chouchensb Messages postés 64 Date d'inscription jeudi 3 mars 2005 Statut Membre Dernière intervention 2 septembre 2010
28 juil. 2010 à 22:17
Euh je ne pense pas que les macros soient vraiment faites pour tourner en continu, ce n'est pas fait pour. C'est plutot fait pour faire du code évènementiel, c'est à dire qui se déclenche quand on fait quelquechose (quand on clique sur un bouton par exemple).

Ceci étant dit, tu peux faire exécuter ton code à chaque modification de ta feuille si c'est ce que tu veux. Pour cela, écrit ton code de la façon suivante dans la feuille que tu veux surveiller (la feuille 1 je suppose):

Private Sub Worksheet_Change(ByVal Target As Range)

Dim i

Sheets("Feuil2").Range("B4") = ""
For i = 3 To 64
If InStr(1, Range("C" & i).Value, "CP") <> 0 Then
Sheets("Feuil2").Range("B4") = Sheets("Feuil2").Range("B4") & " " & Range("C" & i).Value
End If
Next i

Activeworkbook.Save

End Sub

L'évènement Worksheet_Change, et donc ton code, se déclenchera chaque fois que ta feuille sera modifié. Si tu veux connaitre la liste de tous les évèments gérés, quand tu es dans la fenêtre de dévelopement VBA, regarde les deux listes déroulantes en haut de la fenêtre de code. Si tu es sur une feuille, par exemple, sélectionne dans la liste de gauche Worksheet. Tu obtiendra alors dans la liste de droite tous les évènements disponibles, et si tu clique sur l'un d'eux, ça te génèrera automatiquement l'en-tête du code associé.
0
Rejoignez-nous