[VBE]executer macro sur plage

Fermé
missExcel - 7 juil. 2009 à 14:36
 MissExcel - 17 juil. 2009 à 09:35
Bonjour,
je suis secrétaire et g fait une macro mais qui ne sapplique que sur 1 seule ligne, je voudrai que la macro soit valable sur toutes les lignes de ma feuille. J'ai pensé à EntireColumn.select mais ca marche pa.donc je pensai faire une plage [A1:Z65535] ?
Ma macro :


Private sub macro1()
If range("a1").value = "ordinateur de bureau" then range("b2").value="OK"
End if
End sub
merci de m'aider !
A voir également:

9 réponses

wida Messages postés 150 Date d'inscription lundi 5 novembre 2007 Statut Membre Dernière intervention 28 novembre 2011 17
7 juil. 2009 à 15:10
tu peux mettre une boucle:


Private sub macro1()
dim i as Long
while (i<65565) ' tu met le nombre de tes lignes
If range("a" & i).value = "ordinateur de bureau" then range("b2").value="OK"
End if
i=i+1
Wend
End sub
0
Bonjour ! ca ne marche pa dommage
erreur définit par l'application ou par l'objet erreur 1004 !
tu c comment je peu faire?
0
wida Messages postés 150 Date d'inscription lundi 5 novembre 2007 Statut Membre Dernière intervention 28 novembre 2011 17
9 juil. 2009 à 08:24
il faudrai initialiser le i =1 avant la boucle
c peut etre du à ça!!
0
Bonjour,
il ny a plus ce mssage derreur mais il y en a 1 autre : "La méthode "range" de l'objet "_global" a échoué.
Sub Macro1()

Dim i As Long
i = 1
While (i < 65565) 

If Range("a" & i).Value = "test" Then Range("b1").Value = Ok
end if
i = i + 1
Wend

End Sub
le pb vient d'ou? merci!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
wida Messages postés 150 Date d'inscription lundi 5 novembre 2007 Statut Membre Dernière intervention 28 novembre 2011 17
10 juil. 2009 à 09:05
Bonjour,
je comprends pas trop le but de ta macro
mais essay de faire la pas a pas pour voir quel cellule pose probleme,
0
eriiic Messages postés 24601 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 25 novembre 2024 7 243
10 juil. 2009 à 09:58
Bonjour,

si ton but est de voir si une chaine est présente en colonne A pas besoin de macro. En B1 tu mets :
=SI(NB.SI(A:A;"=test")>0;"ok";"")

Si ton but est de mettre ok sur toutes les lignes où est présente la chaine test (car on ne sait tjs pas ce que tu veux exactement...) alors :
=SI(A1="test";"ok";"")
à recopier vers le bas

eric
0
Bonjour,
le problème c'est que j'ai atteint le maximum de mise en forme conditionnelle.
Je l'ai donc coder, mais ma macro est du type :
If Range("O160") <> "" Then

Range("M160").Interior.Color = RGB(51, 51, 255)
Else: Range("M160").Interior.Color = RGB(255, 255, 255)
End If

Comment faire pour faire quelque chose du type :

If Range("O") <> "" Then

Range("M").Interior.Color = RGB(51, 51, 255)
Else: Range("M").Interior.Color = RGB(255, 255, 255)
End If

Merci !
0
eriiic Messages postés 24601 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 25 novembre 2024 7 243
16 juil. 2009 à 18:28
Bonjour,

heuuuu, ça n'a plus rien à voir du tout avec ta demande initiale...
Tu as changé ton fusil d'épaule ou bien c'est une nouvelle demande ?
Car dans un cas tu recherches une chaine précise pour mettre ok dans une cellule, dans l'autre n'importe quelle saisie te colorie une autre cellule

Si tu veux bien décrire précisement ce que tu souhaites et quel est ton but stp

En attendant voici un exemple pour balayer la colonne O en se limitant à la dernière cellule avec saisie :
    For i = 1 To [O65536].End(xlUp).Row
        If Cells(i, "O") <> "" Then
            ' ton traitement
        End If
    Next i


eric
0
J'ai plusieurs colonnes, dans un de mes tests, j'ai une colonne O et une colonne L.
Je voudrais, lorsque on entre une donnée dans O (nimporte quelle cellule, la 7ieme ou la 54321ieme) si la cellule de la collone L n'est pas rempli, elle devient bleu.

Donc si j'entre une donnée dans "O54321", "L54321" devient bleu si il n'y a aucune donné dedans.

Pareil dans l'autre sens, si L remplit, O bleu si vide.

Merci de m'aider !
0