Afficher valeur selon la valeur de la cellule de gauche

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

titom59280

XLDnaute Junior
Bonjour a tous,

Je cherche à créer une macro qui en gros dirait regarde les cellules de la colonne intel ex colonne B
si il est affiché une valeur ex 116 alors a droite tu inscrit un truc si la valeur est intel mais ceci etc

donc j'ai commencé un petit code le voici :
Code:
Sub DPP_to_ODB()
ActiveCell = Cells
ODB = Cells(i, 2)
zone_dpp = 0
i = 1

Do While Cells(i, 1).Value <> ""

If Cells(i, 1).Value = "113" Or Cells(i, 1).Value = "99" Or Cells(i, 1).Value = "61" Or Cells(i, 1).Value = "116" Or Cells(i, 1).Value = "114" Then
zone_dpp = "PROD02ODB02"
ElseIf Cells(i, 1).Value = "97" Or Cells(i, 1).Value = "109" Or Cells(i, 1).Value = "69" Then
zone_dpp = "PROD02ODB03"
ElseIf Cells(i, 1).Value = "107" Or Cells(i, 1).Value = "95" Or cel = "62" Then
zone_dpp = "PROD02ODB04"
ElseIf Cells(i, 1).Value = "108" Or Cells(i, 1).Value = "92" Or cel = "88" Or Cells(i, 1).Value = "112" Or Cells(i, 1).Value = "110" Or Cells(i, 1).Value = "65" Or Cells(i, 1).Value = "75" Then
zone_dpp = "TKUDPX02"
ElseIf Cells(i, 1).Value = "89" Or Cells(i, 1).Value = "64" Or Cells(i, 1).Value = "82" Or Cells(i, 1).Value = "115" Or Cells(i, 1).Value = "67" Or Cells(i, 1).Value = "119" Or Cells(i, 1).Value = "120" Or Cells(i, 1).Value = "121" Then
zone_dpp = "TKUDPX03"
ElseIf Cells(i, 1).Value = "122" Or Cells(i, 1).Value = "66" Or Cells(i, 1).Value = "117" Or Cells(i, 1).Value = "118" Or Cells(i, 1).Value = "127" Then
zone_dpp = "TKUDPX04"
ElseIf Cells(i, 1).Value = "123" Or Cells(i, 1).Value = "74" Or Cells(i, 1).Value = "111" Or Cells(i, 1).Value = "106" Then
zone_dpp = "TKUDPX05"
Else
zone_dpp = "TKUDPX06"
ODB.Value = zone_dpp
i = i + 1
End If

Loop
End Sub

je ne sais pas si pour le moment je part sur la bonne direction et ou si mon code est bon mais maintenant j'ai le message suivant lorsque j'éxécute la macro :

Erreur d'éxécution '1004' Erreur définie par l'application ou par l'objet

Si vous auriez des idées ou des suggestions je suis tous ouie
 
Dernière édition:
Re : Afficher valeur selon la valeur de la cellule de gauche

Bonsoir a tous
a priori ton erreur viens d'ici
ElseIf Cells(i, 1).Value = "107" Or Cells(i, 1).Value = "95" Or cel = "62" Then
zone_dpp = "PROD02ODB04"
ElseIf Cells(i, 1).Value = "108" Or Cells(i, 1).Value = "92" Or cel = "88" Or Cells(i,


et personnellement j'aurai fait avec un select case

Code:
Sub DPP_to_ODB()
ActiveCell = Cells
Odb = Cells(i, 2)
zone_dpp = 0
i = 1
Do While Cells(i, 1).Value <> ""
  Select Case Cells(i, 1).Value
   Case "113", "99", "61", "116", "114"
     zone_dpp = "PROD02ODB02"
   Case "97", "109", "69"
     zone_dpp = "PROD02ODB03"
   Case "107", "95", "62"
     zone_dpp = "PROD02ODB04"
   Case "108", "92", "88", "112", "110", "65", "75"
     zone_dpp = "TKUDPX02"
   Case "89", "64", "82", "115", "67", "119", "120", "121"
     zone_dpp = "TKUDPX03"
   Case "122", "66", "117", "118", "127"
     zone_dpp = "TKUDPX04"
   Case "123", "74", "111", "106"
     zone_dpp = "TKUDPX05"
   Case Else
    zone_dpp = "TKUDPX06"
    Odb.Value = zone_dpp
  End Select
   i = i + 1
 Loop
End Sub
 
Re : Afficher valeur selon la valeur de la cellule de gauche

re
dans le vbe
menu outil---> option
option.jpg
il te faudra déclarer toutes tes variables et ainsi limitera les erreurs
de plus une variable string a besoin moins de mémoire qu'une variant
 
Re : Afficher valeur selon la valeur de la cellule de gauche

salut

ne serait-ce pas plutôt ainSi... ?
Code:
Private Sub CommandButton1_Click()
  Dim R As Range
  For Each R In Range("C2", [C65000].End(xlUp))
    Select Case R.Value
      Case 113, 99, 61, 116, 114: R(1, 2) = "PROD02ODB02" 'à droite ! 
      Case 97, 109, 69: R(1, 2) = "PROD02ODB03"
      Case 107, 95, 62: R(1, 2) = "PROD02ODB04"
      Case 108, 92, 88, 112, 110, 65, 75: R(1, 2) = "TKUDPCells02"
      Case 89, 64, 82, 115, 67, 119, 120, 121: R(1, 2) = "TKUDPCells03"
      Case 122, 66, 117, 118, 127: R(1, 2) = "TKUDPCells04"
      Case 123, 74, 111, 106: R(1, 2) = "TKUDPCells05"
      Case Else
       R(1, 2) = "TKUDPCells06"
    End Select
  Next
End Sub
 

Pièces jointes

Re : Afficher valeur selon la valeur de la cellule de gauche

petite question complémentaire :
est-ce possible de modifié cette ligne:
Code:
For Each R In Range("C2", [C65000].End(xlUp))

pour ne pas avoir la colone c2 fixe mais qui serait différent selon la cellule active

car surtain de mes fichiers il ne sont pas toujours au meme endroit donc ça m'éviterait de modifier le code a chaque fois.

Je suppose avec l'attribut ActiveCell non?
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour