[RESOLU] Copier cellule suivant liste

  • Initiateur de la discussion Initiateur de la discussion jiby
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

J

jiby

Guest
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

Dernière modification par un modérateur:
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:
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Retour