[RESOLU] Copier cellule suivant liste

jiby

XLDnaute Nouveau
Bonjour à tous,

Après m'être perdu dans les abysses de la VBA, je fais appel à vous.

Je cherche à faire une macro me permettant de faire la chose suivante :

Si dans la feuil "EXEMPLE", en A3, il y a "100", alors la macro doit aller chercher dans la feuille "ListRéf" la ligne
correspondant à la référence "100" et copier les infos à coté dans la feuille "EXEMPLE" et ainsi de suite pour
A4, A5 etc...

Mon fichier joint vous expliqueras un peu mieux.


Merci d'avance pour votre aide,

Jiby
 

Pièces jointes

  • RefListe.xlsx
    10.3 KB · Affichages: 38
  • RefListe.xlsx
    10.3 KB · Affichages: 37
  • RefListe.xlsx
    10.3 KB · Affichages: 38
Dernière édition:

JHA

XLDnaute Barbatruc
Re : Copier cellule suivant liste

Bonjour à tous,

pas besoin de VBA, avec mode tableau dans les 2 feuilles

JHA
 

Pièces jointes

  • RefListe.xlsx
    13.1 KB · Affichages: 37
  • RefListe.xlsx
    13.1 KB · Affichages: 43
  • RefListe.xlsx
    13.1 KB · Affichages: 40

Victor21

XLDnaute Barbatruc
Re : Copier cellule suivant liste

Bonjour.

Pas sûr qe le VBA soit nécessaire. En C3 à recopier vers la droite et vers le bas :
=INDEX('Liste Réf'!$A$2:$D$4;EQUIV($B3;'Liste Réf'!$A$2:$A$4;0);EQUIV(C$2;'Liste Réf'!$A$1:$D$1;0))
.
Mais si vous y tenez, utilisez l'enregistreur de macro.
(Peut être simplfié en utilisant les noms définis dans "Liste Réf")

Edit : Bonjour, JHA :)
 
Dernière édition:

Dormeur74

XLDnaute Occasionnel
Re : Copier cellule suivant liste

Je t'ai mis un petit exemple en VBA qui fonctionne quelque soit le nombre de références et le nombre de lignes dans le tableau "Exemple".
On n'a pas forcément besoin de VBA, mais je te l'ai mis quand même.

Code:
Option Explicit

Sub Macro1()
    Dim tableauRef() As Variant
    Dim nbRef As Long
    Dim X As Long, Y As Long
    Dim nbLignes As Long
    
    ' On dimensionne le tableau
    nbRef = Sheets("Liste Réf").Cells(Rows.Count, 1).End(xlUp).Row - 1
    ReDim tableauRef(nbRef, 4)
    ' On charge le tableau
    For Y = 1 To nbRef
        For X = 1 To 4
            tableauRef(Y, X) = Sheets("Liste Réf").Cells(Y + 1, X)
        Next X
    Next Y
    
    ' On calcule le nombre de lignes du tableau à remplir
    nbLignes = Cells(Rows.Count, 2).End(xlUp).Row - 2
    For Y = 1 To nbLignes
        For X = 1 To UBound(tableauRef)
            If Cells(Y + 2, 2) = tableauRef(X, 1) Then
                Cells(Y + 2, 3) = tableauRef(X, 2)
                Cells(Y + 2, 4) = tableauRef(X, 4)
                Exit For
            End If
        Next X
    Next Y
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 322
Messages
2 087 280
Membres
103 507
dernier inscrit
tapis23