Validation des données (VBA)

Bonjour voici mon problème

je voudrait que dans la colonne V on ne puisse qu'écrire une valeur négative, a condition que dans la colonne H (même ligne) il y ai la valeur "BUDGET"

Merci pour votre aide

Bonjour

if range("H4") = "BUDGET" then
Range("V4").NumberFormat = "-0"

?

Merci, pour aller plus loin:

La macro est sous

Private Sub Worksheet_Change(ByVal Target As Range)

Il faudrait que ma cellule soit un TARGET

si la cellule sélectionnée contient "Budget" (change) dans la colonne "X"

Il faut que la valeur dans la cellule "Y" (Target.Offset(0, 1)) soit obligatoirement (.NumberFormat = "-0")

Voir fichier joins

24classeur1.zip (9.78 Ko)

Merci,

Encore une question, comment remplacer "G455" par dernière ligne pleine

Sub test()

Dim cellule As Range

For Each cellule In Range("G452:G455")

If cellule = "Bubget" Then

cellule.Offset(, 15).NumberFormat = "_-[$$-409]* #,##0.00_ ;_-[$$-409]* ""-""??_ ;_-@_ "

Else

cellule.Offset(, 15).NumberFormat = "_-[$$-409]* -#,##0.00 ;_-[$$-409]* ""-""??_ ;_-@_ "

End If

Next

End Sub

Range("G452:G" & rows.count).end(xlup).row

Selectionne jusqu'à la derniere ligne non vide de la colonne G

Bonsoir, j'ai encore un problème

J'ai un message d'erreur de compilation

For Each ne peut itérer que sur un objet Collection ou un tableau

Sub test()

Dim cellule As Range

For Each cellule In Range("G452:G" & Rows.Count).End(xlUp).Row

If cellule = "Bubget" Then

cellule.Offset(, 15).NumberFormat = "_-[$$-409]* #,##0.00_ ;_-[$$-409]* ""-""??_ ;_-@_ "

Else

cellule.Offset(, 15).NumberFormat = "_-[$$-409]* -#,##0.00 ;_-[$$-409]* ""-""??_ ;_-@_ "

End If

Next

End Sub

Essayez de rajouter le éléments bleus

(en remplacmant machinchose par le nom de votre feuille)

Sub test()

Dim cellule As Range

With Sheets("machinchose")

For Each cellule In Range("G452:G" & Rows.Count).End(xlUp).Row

If cellule = "Bubget" Then

cellule.Offset(, 15).NumberFormat = "_-[$$-409]* #,##0.00_ ;_-[$$-409]* ""-""??_ ;_-@_ "

Else

cellule.Offset(, 15).NumberFormat = "_-[$$-409]* -#,##0.00 ;_-[$$-409]* ""-""??_ ;_-@_ "

End If

Next

End with

End Sub

Non ça ne fonctionne pas,

La macro fonctionne correctement avec la référence des cellules "G500:G600" mais quand j'applique le code dernière ligne j'ai toujours le même message d'erreur ?

Joignez moi le fichier que je le triture dans tous les sens...

Bonjour

l'erreur est du à ceci, désolé lean :

Range("G452:G" & rows.count).end(xlup).row

mettre plutôt:

Range("G452:G" & Range("G" & Rows.Count).end(xlUp).Row)

@+

Oups ! Merci rvtoulon...

Super çà marche

Merci

Sans vouloir abuser, comme je pourrais faire pour donner deux conditions à ma boucle

Il faut "Budget" dans G et "Budget" dans J

Ou "Commande" dans G et "Budget" dans J

Grosso modo :

If range("J" &....) ="Budget" then
    if range("G" &...) = "Budget" or  range("G" &...) = "Commande" then
    (l'instruction à suivre)
end if
end if

Remplacez bien sur les "..." par la variable d'incrémentation.

Encore merci

Voici mon code et çà marche

Sub test()

Dim cellule As Range

For Each cellule In Range("G452:G" & Range("G" & Rows.Count).End(xlUp).Row)

If cellule = "Bubget" And cellule.Offset(, 16) = "1-Budget" Or cellule = "Contrat" And cellule.Offset(, 16) = "1-Budget" Then

cellule.Offset(, 15).NumberFormat = "_-[$$-409]* #,##0.00_ ;_-[$$-409]* ""-""??_ ;_-@_ "

Else

cellule.Offset(, 15).NumberFormat = "_-[$$-409]* -#,##0.00 ;_-[$$-409]* ""-""??_ ;_-@_ "

End If

Next

End Sub

De rien

Rechercher des sujets similaires à "validation donnees vba"