Copier valeur sous condition

Résolu/Fermé
Tuline Messages postés 55 Date d'inscription mardi 18 mars 2014 Statut Membre Dernière intervention 16 novembre 2018 - 8 août 2017 à 12:13
Tuline Messages postés 55 Date d'inscription mardi 18 mars 2014 Statut Membre Dernière intervention 16 novembre 2018 - 9 août 2017 à 13:17
Bonjour,

je suis bloquée sur une macro, voici le code :

Sub prix_enseigne()
'
' prix_enseigne Macro
'

Dim i, j As Integer
Dim A, B, C As Variant
i = 189
j = 3

Sheets("QUOTATION").Activate
For i = 189 To 192
A = Sheets("QUOTATION").Range("B" & i).Value 'A prend la valeur du nom de l'enseigne du devis

For j = 3 To 83
B = Sheets("Prix enseigne").Range("C" & j).Value 'B prend la valeur du nom de l'enseigne dans la base de données des prix
If B = A Then 'si les deux sont identiques
Sheets("Prix enseigne").Activate 'activer la feuille prix enseigne
C = Range("J" & j).Value 'mettre dans C la valeur de la case J correspondante - le prix
Sheets("QUOTATION").Activate 'donner à la case prix, le montant concerné
Range("E" & i).Value = C
Else
Sheets("QUOTATION").Activate 'sinon écrire "a"
Range("E" & i).Value = "a"

End If
Next j
Next i



End Sub


Le else fonctionne très bien mais justement j'ai des a partout
En fait, la référence se trouvant dans la case "QUOTATION" Bi est variable selon des dimensions et ma feuille "Prix enseigne" contient les prix de toutes les références (référence en colonne C et prix en colonne J)
J'espère que vous pourrez m'aider.

Je vous remercie !
A voir également:

2 réponses

ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
8 août 2017 à 13:28
Bonjour Tuline, bonjour le forum,

Tes explications ne sont pas assez claires (pour moi en tous cas...) et nécessitent un fichier exemple ( voir par exemple : https://www.cjoint.com/ ).
0
Tuline Messages postés 55 Date d'inscription mardi 18 mars 2014 Statut Membre Dernière intervention 16 novembre 2018
8 août 2017 à 14:32
Bonjour

je n'arrive pas à joindre un fichier, comment fait on svp ?
0
Tuline Messages postés 55 Date d'inscription mardi 18 mars 2014 Statut Membre Dernière intervention 16 novembre 2018
8 août 2017 à 16:24
Bonjour

je n'arrive pas à joindre le fichier excel

voici les impressions écrans de deux onglets :

- onglet 1 "Quotation"
on choisit la taille de l'enseigne en bas à droite. Les cases colonne B changent en conséquence. Il faudrait copier les prix en colonne E depuis la base de données de l'onglet "Prix enseigne"
https://img-19.ccm2.net/gr4EUeR-EF3_HujCB0sc-TqqXUs=/d939ed63434d4646a67a7ff53fb9959a/ccm-ugc/onglet_1.png

- onglet 2 "Prix enseigne"
https://img-19.ccm2.net/i2RFI5l2E2c9dZ4tueg2heVTjsw=/fc2aa650620346aa99c25bd59e1ecfc2/ccm-ugc/onglet_2.png

merci pour votre aide
0
 
Bonjour Tuline,

Je te propose ce code VBA :


Option Explicit

Sub prix_enseigne()
  ' NomED : Nom de l'enseigne du devis
  Dim NomED As String, i As Long, j As Long
  Worksheets("QUOTATION").Activate
  Application.ScreenUpdating = False
  With Worksheets("Prix enseigne")
    For i = 17 To 20
      NomED = Range("B" & i)
      For j = 3 To 23
        If .Range("C" & j) = NomED Then
          If .Range("J" & j) > 0 Then
            Range("E" & i) = .Range("J" & j)
          Else
            Range("E" & i) = "a"
          End If
          Exit For
        End If
      Next j
    Next i
  End With
End Sub


Si tu es sûre que tes lignes i et j ne dépasseront jamais 255,
tu peux mettre : i As Byte, j As Byte

⚠ Les n° de lignes pour i et j sont selon tes 2 copies d'écran
=> 17 à 20 et 3 à 23 ; à adapter dans ton vrai fichier.

On met le prix de la colonne J s'ils sont présents, sinon : "a".

----------------------------------------------------

Pour les prix des autres colonnes (F et G, et peut-être aussi E et I), il faut
que tu donnes plus d'infos : combien de dimensions y a-t-il en tout ?
3 (colonnes F, G, J) ? 5 (si E et I en plus) ? autre ?

complète en ligne 1 les dimensions ; s'il y a des PU en colonnes E et I,
mets "PU" en E2 et I2.

Sur ta feuille "QUOTATION", lignes 17 à 20, où donc mets-tu la dimension
voulue par le Client ? il la faut pour pouvoir faire une correspondance
avec la bonne colonne de prix !

----------------------------------------------------

Donne un exemple concret de dimensions, de ce genre :
«
Dimensions A : 80 × 30
Dimensions B : 100 × 40
Dimensions C : 120 × 50
(Largeur × Hauteur en cm)
»

À te lire pour la suite.

Cordialement
 
0
Tuline Messages postés 55 Date d'inscription mardi 18 mars 2014 Statut Membre Dernière intervention 16 novembre 2018
9 août 2017 à 13:17
Bonjour fred,

mille mercis,
j'ai su adapter et tout fonctionne parfaitement !!
Je te remercie
0