Afficher valeur selon la valeur de la cellule de gauche

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:

jpb388

XLDnaute Accro
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
 

titom59280

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

Voila le fichier j'ai mis que 3 lignes mais la macro devrait fonctionner avec x nombre de ligne
 

Pièces jointes

  • dpp_to_odb.xlsm
    16.2 KB · Affichages: 41
  • dpp_to_odb.xlsm
    16.2 KB · Affichages: 49
  • dpp_to_odb.xlsm
    16.2 KB · Affichages: 54

jpb388

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

re

voici le fichier
et si je peux me permettre un conseil fais tes macros avec l'"option explicit", cela évite pas mal d'erreur
 

Pièces jointes

  • dpp_to_odb.xlsm
    15.3 KB · Affichages: 44
  • dpp_to_odb.xlsm
    15.3 KB · Affichages: 59
  • dpp_to_odb.xlsm
    15.3 KB · Affichages: 54

jpb388

XLDnaute Accro
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
 

Si...

XLDnaute Barbatruc
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

  • à droite(VBA).xlsm
    21.8 KB · Affichages: 43

titom59280

XLDnaute Junior
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?
 

Discussions similaires

Réponses
6
Affichages
308

Statistiques des forums

Discussions
312 275
Messages
2 086 707
Membres
103 377
dernier inscrit
fredy45