VBA

Fermé
la pioche - 22 janv. 2009 à 09:50
Bidouilleu_R Messages postés 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 - 23 janv. 2009 à 12:48
Bonjour,
je suis débutant en VBA
je voudrais m'entrainer en faisant un truc simple
par exemple:
si le mot chaussée est écrit dans la plage de cellule A1:B2
alors la case C2 sera rempli par chaussée
début de programme :
Sub Repport_cellule2()
If Range("A1:B2") = "chaussée" Then
Cells(2,3) = "chaussée"
Else: Cells(2,3) = ""
End If
End Sub
si quelq'un pourrait m'aider car cela ne fonctionne pas
merci d'avance

9 réponses

Bidouilleu_R Messages postés 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 293
22 janv. 2009 à 09:59
Bonjour,
je suis débutant en VBA ' on l'a tous été un jour
je voudrais m'entrainer en faisant un truc simple ' c'est une bonne idée
par exemple:
si le mot chaussée est écrit dans la plage de cellule A1:B2
' une plage est un ensemble de cellule qui contient au moins une cellule
alors la case C2 sera rempli par chaussée
début de programme :

Sub Repport_cellule2()
' essaie ça
Dim C As Variant
For Each C In Range("A1:B2")
If C.Value = "chaussée" Then
Cells(2, 3) = "chaussée"
Else
Cells(2, 3) = ""
End If

Next

End Sub
0
merci bidouilleur_R
le problème c'est qu'il faut que toute la plage de cellule contient le mot chaussée pour que cela marche
A+
0
Bidouilleu_R Messages postés 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 293
22 janv. 2009 à 10:28
Oups! petite faute!
désolé



Sub Repport_cellule2()
' essaie ça
Dim C As Variant
For Each C In Range("A1:B2")
If C.Value = "chaussée" Then
Cells(2, 3) = "chaussée"
exit for
Else
Cells(2, 3) = ""
End If

Next

End Sub
0
impec cela marche!
si tu as encore un peu de temps a me consacrer et l'envie
maintenant si je veux remplacer le mot "chaussée" par un nom de cellule
par exemple:
au lieu du mot "chaussée" j'ai le mot "fossé" et je veux que ce soit le mot fossé qui apparait en C2
ces deux mots appartiennent au nom de cellule "paramètres chaussée"

Option Explicit
Sub Repport_cellule2()
Dim C As Variant
For Each C In Range("A1:B2")
If C.Value = "ParamètresChaussées" Then
Cells(2, 3) = "chaussée"
Exit For
Else
Cells(2, 3) = ""
End If

Next

End Sub
cela ne marche pas ...
0

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

Posez votre question
Bidouilleu_R Messages postés 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 293
22 janv. 2009 à 11:47
je ne comprends pas !!


maintenant si je veux remplacer le mot "chaussée" par un nom de cellule
je suppose que tu veux dire le contenu d'une cellule... car la cellule s'appelle A1 ou A2... au moins que
tu lui affectes un nom ce serait donc "paramètres chaussée"

par exemple:
au lieu du mot "chaussée" j'ai le mot "fossé" et je veux que ce soit le mot fossé qui apparait en C2
ces deux mots appartiennent au nom de cellule "paramètres chaussée"
explique mieux :
il y a une différence entre le contenu et le nom de la cellule
0
en faite je veux que cela reporte ma case que si elle appartient a la catégorie paramètresChaussées dont chaussée et fossée appartiennent
par exemple si j'ai chaussée cela reporte
mais si j'ai bonjour qui n'appartient pas a paramètres chaussée cela ne fait pas le report
0
la pioche > la pioche
22 janv. 2009 à 12:06
je te précise que paramètreschaussée est un nom donnée a une plage de cellule sur une autre feuille afin d'avoir une liste deroulante dans la feuille ou je veux que cela fasse le report

dsl j'espère que tu va mieux comprendre comme cela
0
Bidouilleu_R Messages postés 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 293
22 janv. 2009 à 12:49
si j'ai bien compris on parcours une liste "paramètresChaussée" qui se trouve sur une feuille XX
sur la feuille ou se passe le traitement ( il vaut mieux pour toi la sélectionner )
tu veux écrire que écrire le résultat "fossé" ou rien! en C2

ça donne ça




Sub Repport_cellule2()

Dim C As Variant
For Each C In Range("paramètresChaussées")
If C.Value = "fossé" Then
Cells(2, 3) = "fossé"
Exit For
Else
Cells(2, 3) = ""
End If

Next

End Sub
0
Nan cela ne marche pas
je te réexplique d'une autre façon
j'ai une catégorie qui est paramètres chaussées
fossée et chaussée appartiennent a cette catégorie
en revanche bordure n'appartient pas a cette catégorie

je veux donc que chaussée soit reporté en C1, fossé en C2 et bordure ne soit pas reporté
0
Bidouilleu_R Messages postés 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 293
22 janv. 2009 à 15:14
Désolé je suis peut-être rouillé!!!




Sub Repport_cellule2()

Dim C As Variant
For Each C In Range("paramètresChaussées") ' parcours la liste
Select Case C.Value
Case "fossé"
Cells(2, 3) = "fossé"
Case "chaussée"
Cells(1, 3) = "Chaussée"
Case Else
'on ne fait rien

End Select



Next

End Sub
0
nickel je te remercie!!!!
0
la pioche > la pioche
22 janv. 2009 à 16:22
euh je te repose une autre question:
j'aimerais maintenant faire:
si la cellule est rempli sauf un certain mot, le report se fait
si la cellule est vide ou contient un certain mot, le report ne se fait pas
ex:
A1 chaussée
A2 fossé
A3 bonjour
le mot en question est bonjour je veux que cela reporte mes cases sauf le mot bonjour sachant que le mot chaussée peut etre un autre mot
algorithme: si A1 est rempli alors B1 = case sauf si A1=bonjour
mon idée incomplete : if Cells(1,1) = .... then
Cells (2,1)= Cells(1,1)
Else if Cells(1,1)="bonjour"
0
Bidouilleu_R Messages postés 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 293
23 janv. 2009 à 12:48
Bonjour,

if Cells(1,1) = "un certains mot" then
Cells (2,1)= Cells(1,1) ' b1 prend la valeur de A1
Else
Cells(1,1)="bonjour" ' si A1 ="bonjour"
' je rajoute le code que je veux
end if
0