Macro permet de copier sans formule si une condition est vrai

Jappa_adis

XLDnaute Nouveau
Bonsoir,

SVP pouvez-vous m’aider en urgence ?

Je cherche une macro qui permet de :

Si la valeur dans la cellule Ai , dans Feuil 2, existe dans Feuil 1 (dans les cellules allant de C11 à C30)

Avec i allant de 2 à 1048576

Alors Dans la feuil2 : Copier seulement la valeur (sans formule) de Ii dans Fi

Exemple dans notre cas :

A2 (feuil2) = C11 (feuil1) dans ce cas la macro doit copier la valeur I2 (feuil2) dans F2 (Feuil2) (sans formule)

Résultat : F2 sera égale 70


Merci d’avance
 

Pièces jointes

  • Classeur1.xlsx
    18.3 KB · Affichages: 29

Bebere

XLDnaute Barbatruc
bonjour Jappa,le forum
mis un bouton dans feuil1 pour exécuter le code du module1
tu as une liste de validation colonne C de feuil1,ce serait possible d'exécuter un code si la valeur dans la liste change
 

Pièces jointes

  • ClasseurJappa.xlsm
    30.4 KB · Affichages: 28

Jappa_adis

XLDnaute Nouveau
Merci de m’avoir répondu.

C’est très utile et ça fonctionne sauf que j’ai effectué quelque changement :

La colonne F que je veux la changer dans la fin c’est celle qui existe dans la feuil2 et non feui1.

Ça fonctionne maintenant mai J’ai encore besoin de ton aide. Je voulais utiliser la même VBA dans un autre classeur où le nom de la Feuil1 = « Commande » et Feuil2= « Articles » et je ne savais pas comment faire et ça marche pas en remplaçant seulement dans la VBA le mots Feuil1 avec Commande et ce lui de Feuil2 par Articles.

Ps. Les feuilles dans le nouveau classeur sont identiques à ce classeur

Merci énormément :)
 

Pièces jointes

  • ClasseurJappa.xlsm
    30.6 KB · Affichages: 27

Bebere

XLDnaute Barbatruc
Jappa petite explication

Code:
Public Sub CopieValeur()
    Dim DerL1 As Long, DerL2 As Long
'Feuil1 est le codename de la feuille regarde dans la fenêtre Microsoft Excel Objets de (Feuil1)
'met Worksheets("Commande") à la place de Feuil1
'idem pour Feuil2, Worksheets ("Articles")

    DerL1 = Feuil1.Range("C31").End(xlUp).Row
    DerL2 = Feuil2.Range("A1048576").End(xlUp).Row
    For i = 11 To DerL1
        For j = 2 To DerL2
            If Feuil2.Range("A" & j) = Feuil1.Range("C" & i) Then
               Feuil1.Range("F" & j).Value = Feuil2.Range("I" & j).Value
                Exit For
            End If
        Next j
    Next i

End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 206
Messages
2 086 201
Membres
103 156
dernier inscrit
Ludo94130