Conditions VBA

Bonjour a tous,

Je me permet de sollicter votre aide afin de m'aider sur le fichier suivant s'il vous plait,

sur la colonne C, D, E contient des valeurs de dimensions avec la lettre "I" pour inch et "C" pour centimetre et ce que je souhaite c'est si une des valeurs est superieur a 50 C alors inscrire Non Conv en colonne H

et meme chose si une des valeurs est superieur a 20 I alors alors inscrire Non Conv en colonne H

et bien entendu par la suite je pourrais modifier ces valeurs en colonne L et M

je vous remercie d'avance

6conditions.xlsx (72.95 Ko)

Bonjour,

copier la formule suivante en cellule H2 et recopier vers le bas,

=SIERREUR(SI(ET(DROITE(C2;1)="I";STXT(C2;1;NBCAR(C2)-2)*1>20);"Non conv";SI(ET(DROITE(C2;1)="C";STXT(C2;1;NBCAR(C2)-2)*1>50);"Non conv";""));"")

Bonsoir SAbV,

je te remercie d'avoir repondu avec cette solution , par contre est il possible avec du code vba s il te plait

Merci

est il possible avec du code vba s il te plait

oui, à tester,

Sub test()
rw = Cells(Rows.Count, 1).End(xlUp).Row
sList = Range("C2:E" & rw)
For n = LBound(sList) To UBound(sList)
 For i = 1 To 3
  v = sList(n, i)
  If IsEmpty(v) Or v = " " Then GoTo fin
  lettre = Right(v, 1)
  chiffre = Left(v, Len(v) - 2)

  Select Case lettre
   Case "I": If chiffre > 20 Then Cells(n + 1, i + 7) = "Non Conv"
   Case "C": If chiffre > 50 Then Cells(n + 1, i + 7) = "Non Conv"
  End Select

fin:
 Next
Next
End Sub

C'est parfait comme toujours,

je te remercie et bonne soirée

re,

une autre version plus rapide,

Sub test2()
Dim sList, tList(3, 1)
Dim rw As Long, n As Long, i As Integer, chiffre As Integer
Dim v As String, lettre As String

rw = Cells(Rows.Count, 1).End(xlUp).Row
sList = Range("C2:E" & rw)
For n = LBound(sList) To UBound(sList)
 For i = 1 To 3
  v = sList(n, i)
  If IsEmpty(v) Or v = " " Or v = "" Then GoTo fin
  lettre = Right(v, 1)
  chiffre = Left(v, Len(v) - 2)

  Select Case lettre
   Case "I": If chiffre > 20 Then sList(n, i) = "Non Conv" Else sList(n, i) = ""
   Case "C": If chiffre > 50 Then sList(n, i) = "Non Conv" Else sList(n, i) = ""
  End Select

fin:
 Next
Next
Cells(2, 8).Resize(UBound(sList), 3) = sList
End Sub

Bonjour Dehbi, sabV,

Je propose ce fichier Excel (avec une fonction personnalisée) :

7conditions.xlsm (86.83 Ko)

Même si en "Feuil1" j'ai laissé la plage L3:M4, la fonction ne l'utilise pas !

à la place, elle utilise la plage A2:B3 de "Feuil2".

Bien sûr, si tu modifies en "Feuil2" les valeurs de A2:B3, ça sera pris en compte automatiquement.

Vérifie bien tous les résultats de la fonction, y compris, par exemple, pour des lignes comme 148 à 152 ; si un message apparaît en colonne H, ça signifie qu'au moins une des 3 dimensions est supérieure à sa limite respective (selon que c'est en cm ou en inches).

Alt F11 pour voir le code VBA, puis revenir sur Excel

Si besoin, tu peux demander une adaptation.

Merci de me donner ton avis.

dhany

Salut Dhany,

je viens de tester en modifiant en feuille 2 les dimensions mais rien ne se passe en feuille 1

Merci de me dire si il ya quelques chose a faire ?

Merci

Désolé, j'avais oublié une instruction ! voici la version corrigée :

6conditions.xlsm (87.09 Ko)

cette fois, j'ai bien vérifié que le changement des valeurs en "Feuil2"

est pris en compte, et ce dès que tu retournes sur "Feuil1"

dhany

Dhany,

Je te remercie pour la correction je viens de tester et c'est parfait.

Merci Encore

Rechercher des sujets similaires à "conditions vba"