Copier des colonnes si cellules identiques - Essai de code

  • Initiateur de la discussion Initiateur de la discussion Machapi
  • 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 !

Machapi

XLDnaute Nouveau
Bonjour or Bonsoir !

Désolée pour le titre un peu confus je vais essayer d'être plus clair ici.

J'ai une feuille excel "references"qui contient une 100aine de references.
Et dans un autre classeur nommé "Tableau" j'ai une feuille "ToutesLesReferences" qui contient un tableau de plusieurs centaines de references toutes associées a d'autres critères.

Mon but c'est que si dans la grosse feuille "ToutesLesReferences" je trouve une reference qui existe dans ma feuille "references" alors ca me copie les element des colonnes 4,19,24 et 26 de cette ligne dans l'autre feuille.

Je ne sais pas si je suis très claire ?

Je pense que "traduit" d'une manière un peu plus informatique ca donnerait une boucle du genre


Pour la cellule contenant ma 1ere reference dans la feuille References
Si dans la colonne C de la feuille ToutesLesReferences du classeur Tableau je trouve la même valeur alors
copie les lignes des colonnes 4,19,24 et 26 (surement cells(i,4) cells(i,19) ...?) dans la feuille References
fin si
fin pour


Je ne connais pas bien toutes les formules d'Excel je sais qu'avec les macros c'est plus simple mais il faudrait un code se rapprochant plus du dev pascal tout en utilisant des propriétés propres de VBA et qui nous facilite la vie.

Je vous joins mon classeur de references ainsi qu'un petit bout de mon énorme tableau.

J'ai fais un code qui marche bien quand il y a peu de valeurs, j'essaye de l'adapter pour un fichier avec des dimensions inconnues grace a un tableau, mais tous mes efforts sont vains ...
Code:
Private Sub CommandButton1_Click()

Dim i As Long
Dim j As Long

For i = 1 To 20
    For j = 1 To 16
        If Workbooks("Essai2.xls").Sheets("Hoja1").Cells(i, 1).Value = ActiveWorkbook.ActiveSheet.Cells(j, 1) Then
            Workbooks("Essai2.xls").Sheets("Hoja1").Cells(i, 2).Copy Destination:=ActiveWorkbook.ActiveSheet.Cells(j, 2)
            Workbooks("Essai2.xls").Sheets("Hoja1").Cells(i, 3).Copy Destination:=ActiveWorkbook.ActiveSheet.Cells(j, 3)
        End If
        
    Next j
Next i


End Sub
 

Pièces jointes

Dernière édition:
Re : Copier des colonnes d'un classeur a un autre si cellules identiques

CODE EDITE

Voici mon essai avec le tableau qui ne marche pas

Code:
Private Sub CommandButton1_Click()


Dim Stocks As Workbook
Dim Ref As Workbook
Dim i As Integer
Dim j As Integer
Dim tableau()
Dim DernLigne As Long
Dim a As Long


For Each Cell In Range("A2:A" & Range("A65536").End(xlUp).Row)
    Cell.Value = Trim(Cell.Value)
Next Cell

DernLigne = Range("A" & Rows.Count).End(xlUp).Row
a = DernLigne

For i = 0 To a
   ReDim Preserve tableau(0 To i)
   tableau(i) = Cells(i + 2, 1).Value
Next i

For i = UBound(tableau) To LBound(tableau) Step -1
    For j = 2 To i - 1

        If Workbooks("classeur2.xls").Sheets("feuill1").Cells(i, 3).Value = ActiveWorkbook.ActiveSheet.Cells(i, 1).Value Then
            Workbooks("classeur2.xls").Sheets("feuill1").Cells(i, 4) = Sheets("References").Cells(i, 2)
            Workbooks("classeur2.xls").Sheets("feuill1").Cells(i, 19) = Sheets("References").Cells(i, 3)
            Workbooks("classeur2.xls").Sheets("feuill1").Cells(i, 24) = Sheets("References").Cells(i, 4)
            Workbooks("classeur2.xls").Sheets("feuill1").Cells(i, 26) = Sheets("References").Cells(i, 5)
        End If
        
    Next j
Next i
    

End Sub
 
Dernière édition:
- 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

Discussions similaires

Retour