Copier valeur sous condition

Résolu
Tuline Messages postés 60 Statut Membre -  
Tuline Messages postés 60 Statut Membre -
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

  1. ThauTheme Messages postés 1564 Statut Membre 160
     
    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
    1. Tuline Messages postés 60 Statut Membre
       
      Bonjour

      je n'arrive pas à joindre un fichier, comment fait on svp ?
      0
  2. Tuline Messages postés 60 Statut Membre
     
    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
    1. fred
       
       
      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
    2. Tuline Messages postés 60 Statut Membre
       
      Bonjour fred,

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