Programmation VBA pour Excel XP
sbel
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
randrianarisata Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
randrianarisata Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je suis en train de faire une macro en VBA pour Excel XP et un problème me bloque actuellement:
Je voudrais afficher une valeur dans une cellule qui changera suivant la valeur d'une autre cellule.Concrètement: si le chiffre d'une cellule commence par 0 ou 1 ou 5 ou 8 ou 7, cela doit afficher dans une autre cellule une valeur variable.
Par avance merci.
Je suis en train de faire une macro en VBA pour Excel XP et un problème me bloque actuellement:
Je voudrais afficher une valeur dans une cellule qui changera suivant la valeur d'une autre cellule.Concrètement: si le chiffre d'une cellule commence par 0 ou 1 ou 5 ou 8 ou 7, cela doit afficher dans une autre cellule une valeur variable.
Par avance merci.
A voir également:
- Programmation VBA pour Excel XP
- Liste déroulante excel - Guide
- Cle windows xp - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
6 réponses
Salut,
Je suis pas certain d'avoir compris ta question mais ce qui suit te mettra peut-être sur la piste:
"
Sub Macro1()
If Left(Cells(2, "A"), 1) = "0" Or "2" Then
Cells(4, "A") = "220"
ActiveCell.Select
End If
End Sub"
There's no success like failure
And failure's no success at all
Je suis pas certain d'avoir compris ta question mais ce qui suit te mettra peut-être sur la piste:
"
Sub Macro1()
If Left(Cells(2, "A"), 1) = "0" Or "2" Then
Cells(4, "A") = "220"
ActiveCell.Select
End If
End Sub"
There's no success like failure
And failure's no success at all
C'est vrai que je n'ai pas été très clair dans ma description, reprenons:
J'ai une colonne de chiffre dans un tableau que je dois traiter. Ces chiffres ne se suivent pas forcement et n'ont pas tous la même taille. Le but de la manoeuvre est d'inscrire dans une autre colonne équivalente en taille le décodage de ces chiffres. Je m'explique, si pas exemple un nombre commence par le chiffre 1, je dois marquer dans sa cellule correspondante "Jaune", si le nombre suivant commence par 7 (par exemple 7568934) je dois marquer "Voiture" dans la cellule correspondant en activant la macro.
Merci de me dire si c'est réalisable simplement.
Encore merci d'avance.
A+
J'ai une colonne de chiffre dans un tableau que je dois traiter. Ces chiffres ne se suivent pas forcement et n'ont pas tous la même taille. Le but de la manoeuvre est d'inscrire dans une autre colonne équivalente en taille le décodage de ces chiffres. Je m'explique, si pas exemple un nombre commence par le chiffre 1, je dois marquer dans sa cellule correspondante "Jaune", si le nombre suivant commence par 7 (par exemple 7568934) je dois marquer "Voiture" dans la cellule correspondant en activant la macro.
Merci de me dire si c'est réalisable simplement.
Encore merci d'avance.
A+
Ok alors à mon avis ce qui suit devrait fonctionner :
"
Sub Macro2()
Dim i As Long
For i = 1 To 3000
If Left(Cells(i, "A"), 1) = "0" Then
Cells(i, "B") = "jaune"
ElseIf Left(Cells(i, "A"), 1) = "1" Then
Cells(i, "B") = "Rouge"
ElseIf Left(Cells(i, "A"), 1) = "2" Then
Cells(i, "B") = "vert"
End If
Next i
End Sub
"
i étant le nombre de lignes
A la colonne qui contient les chiffres
B la colonne qui contient les résultats
ciao
There's no success like failure
And failure's no success at all
"
Sub Macro2()
Dim i As Long
For i = 1 To 3000
If Left(Cells(i, "A"), 1) = "0" Then
Cells(i, "B") = "jaune"
ElseIf Left(Cells(i, "A"), 1) = "1" Then
Cells(i, "B") = "Rouge"
ElseIf Left(Cells(i, "A"), 1) = "2" Then
Cells(i, "B") = "vert"
End If
Next i
End Sub
"
i étant le nombre de lignes
A la colonne qui contient les chiffres
B la colonne qui contient les résultats
ciao
There's no success like failure
And failure's no success at all
;-)
Une autre approche :
sub Toto()
dim L
for L=1 to sctivecell.specialcells(xllastcell).row
select case left(cells(L, 1).value,1)
case=0:cells(L,numcolonne).value="toto"
case=x....
end select
next
;-)
Wild and Free
Une autre approche :
sub Toto()
dim L
for L=1 to sctivecell.specialcells(xllastcell).row
select case left(cells(L, 1).value,1)
case=0:cells(L,numcolonne).value="toto"
case=x....
end select
next
;-)
Wild and Free
Salut deus, merci pour le coup de pouce (qu date d'un bout de temps je sais, désolé). Et en plus avec l'aide également de WhiteFang vos méthodes m'ont permis de réussir ce que je voulais faire, cool.
Mais l'heure est grave, j'ai un autre problème:
Je suis en train de faire une autre macro qui doit inscrire dans une cellule une valeur "S" ou"NS" ou "P" ou "Z" suivant la valeur du chiffre d'une autre cellule. Mon problème n'est la mise en forme car le as est proche de la question précédente mais mon souci est pour donner une fourchette de valeur. Par exemple, je veux que, si la valeur du nombre est comprise entre 100 et 500, on inscrive "P" dans l'autre cellule.
Comment ça marche?
Par avance merci
A+
Mais l'heure est grave, j'ai un autre problème:
Je suis en train de faire une autre macro qui doit inscrire dans une cellule une valeur "S" ou"NS" ou "P" ou "Z" suivant la valeur du chiffre d'une autre cellule. Mon problème n'est la mise en forme car le as est proche de la question précédente mais mon souci est pour donner une fourchette de valeur. Par exemple, je veux que, si la valeur du nombre est comprise entre 100 et 500, on inscrive "P" dans l'autre cellule.
Comment ça marche?
Par avance merci
A+
salut sbel
si j'ai bien compris ce que tu cherches à faire, voici un proposition qui reprend plus ou moins ton exemple ...
Pour les autres, tu continues les "If" imbriqués en spécifiant les conditions que tu veux et la valeur à afficher dans l'autre colonne
si j'ai bien compris ce que tu cherches à faire, voici un proposition qui reprend plus ou moins ton exemple ...
Sub Macro()
'la colonne A contient des valeurs numériques à tester à partir de la ligne 1
'la colonne B affiche une valeur en fonction de la colonne A
'x = nombre de lignes à vérifier
For ligne = 1 To x
ActiveSheet.Cells(ligne, "A").Activate
' séléction de la cellule
If ((ActiveCell.Value >= 100) And (ActiveCell.Value <= 500)) Then
ActiveSheet.Cells(ligne, "B").Activate
ActiveCell.Value = "P"
Else
If ((ActiveCell.Value >= 501) And (ActiveCell.Value <= 600)) Then
ActiveSheet.Cells(ligne, "B").Activate
ActiveCell.Value = "S"
End If
End If
Next ligne
End Sub
Pour les autres, tu continues les "If" imbriqués en spécifiant les conditions que tu veux et la valeur à afficher dans l'autre colonne
Salut tout le monde.
Y a t-il un pro de chez pro en ce qui concerne EXCEL?
J'ai plusieur cellule texte qui comprenne des texte différent a chaque cellule comme "MASTER\TDPTDT (Tomasi, Denis) (inform)" ou "MASTER\T05214 (Thielemans, Stéphanie)" mais dans c'est ligne il y a "MASTER\T21001" et des "MASTER\T21003".
Ce que je veux faire c'est faire une recherche en comptant combient il y a de T21 tout en utilisant un forme abrégée"MASTER\T21" pour qu'il prenne en compte T21003 et les T21001
Y a t-il un pro de chez pro en ce qui concerne EXCEL?
J'ai plusieur cellule texte qui comprenne des texte différent a chaque cellule comme "MASTER\TDPTDT (Tomasi, Denis) (inform)" ou "MASTER\T05214 (Thielemans, Stéphanie)" mais dans c'est ligne il y a "MASTER\T21001" et des "MASTER\T21003".
Ce que je veux faire c'est faire une recherche en comptant combient il y a de T21 tout en utilisant un forme abrégée"MASTER\T21" pour qu'il prenne en compte T21003 et les T21001
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Boujour, voilà j'ai un problème insurmontable présentement avec mon application. J'ai une feuille de calcul qui ne se nomme "statistique" qui est composé de 35 lignes pour une liste d'équipements de n10 à n35 ils sont en string. Je dois les incrémenter en relation avec des centres qui compose 4 colonnes en O,P,Q,R. Je veux faire lire une ligne contenant les deux données dans une autre feuille "stact" en "C8" pour les centres et "L8" pour les équipements. Ces données se retrouveront constamment par une macro dans la feuille 'stact" et ils se retrouvent toujours aux mêmes cellules "C8" et "L8" Comment rédiger une procédure qui pourrait lui faire lire ces données pour les incémenter dans "statistiques" par + 1.
Merci à l'avance...André
Merci à l'avance...André