Copier valeur sous condition [Résolu/Fermé]

Signaler
Messages postés
55
Date d'inscription
mardi 18 mars 2014
Statut
Membre
Dernière intervention
16 novembre 2018
-
Messages postés
55
Date d'inscription
mardi 18 mars 2014
Statut
Membre
Dernière intervention
16 novembre 2018
-
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 !

2 réponses

Messages postés
1402
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
13 septembre 2020
141
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/ ).
Messages postés
55
Date d'inscription
mardi 18 mars 2014
Statut
Membre
Dernière intervention
16 novembre 2018

Bonjour

je n'arrive pas à joindre un fichier, comment fait on svp ?
Messages postés
55
Date d'inscription
mardi 18 mars 2014
Statut
Membre
Dernière intervention
16 novembre 2018

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
 
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
 
Messages postés
55
Date d'inscription
mardi 18 mars 2014
Statut
Membre
Dernière intervention
16 novembre 2018

Bonjour fred,

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