Copier des colonnes si cellules identiques - Essai de code

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

  • Referencias.xls
    45.5 KB · Affichages: 79
  • Tableau.xls
    255.5 KB · Affichages: 54
  • Tableau.xls
    255.5 KB · Affichages: 68
  • Tableau.xls
    255.5 KB · Affichages: 56
Dernière édition:

Machapi

XLDnaute Nouveau
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:

Discussions similaires

Statistiques des forums

Discussions
312 240
Messages
2 086 514
Membres
103 239
dernier inscrit
wari