> Tous les forums > Forum Autres langages
 Récupérer données de 3 fichiers Excel en 1 seul !!
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
audrey57
  Posté le 28/04/2011 @ 15:57 
Aller en bas de la page 
Nouvelle astucienne

Bonjour à tous,

Je viens de débuter mon stage et doit effectuer un travail sur Excel.

J'ai 3 fichiers excel avec un champs commun (un numéro de compte) et souhaite les fusionner en un seul autre fichier récapitulatif. Si c'est plus simple pour vous, je peux avoir un fichier avec 3 feuilles.

Je peux avoir des comptes présents dans 1, 2 ou les 3 fichiers. J'ai récupéré un code pour macro (ci-dessous) mais celui-ci ne traite que dans le cas de 2 fichiers et ne me récupère uniquement les lignes qui ont un numéro de compte identique dans les 2 fichiers.

J'ai besoin moi de récupérer toutes les lignes de mes 3 fichiers et dans le cas de numéro de compte présent dans 2 ou 3 fichiers compléter la seule ligne qui est dans mon fichier résultat. Pourriez vous me compléter ce code s'il vous plait? Je galère...

Merci beaucoup de votre aide.

Un petit schéma si ce n'est pas clair...

Fichier 1

N° info1 info2 info3

1 x x x

2 x x x

3 x x x

8 x x x

Fichier2

N° info4 info5 info6

1 x x x

4 x x x

5 x x x

8 x x x

Fichier3

N° info7 info8 info9

1 x x x

3 x x x

5 x x x

6 x x x

Résultat souhaité

N° info1 info2 info3 info4 info5 info6 info7 info8 info9

1 x x x x x x x x x

2 x x x

3 x x x x x x

4 x x x

5 x x x x x x

6 x x x

8 x x x x x x

Sub galopin()
Dim ws1 As Worksheet, ws2 As Worksheet, ws3 As Worksheet, i1, i2, i3, k, kk, z
Set ws1 = Worksheets(1)
Set ws2 = Worksheets(2)
Set ws3 = Worksheets(3)
i1 = ws1.Range("A1").End(4).Row
i2 = ws2.Range("A1").End(4).Row
With ws1
For k = 1 To i1
z = .Range("A" & k)
For kk = 1 To i2
If z = ws2.Range("A" & kk) Then
ws3.Range("A" & i3 + 1) = z
ws3.Range("B" & i3 + 1) = .Range("B" & k)
ws3.Range("C" & i3 + 1) = .Range("C" & k)
ws3.Range("D" & i3 + 1) = .Range("D" & k)
ws3.Range("E" & i3 + 1) = ws2.Range("B" & kk)
ws3.Range("F" & i3 + 1) = ws2.Range("C" & kk)
ws3.Range("G" & i3 + 1) = ws2.Range("D" & kk)
i3 = i3 + 1
End If
Next
Next
End With
End Sub

Publicité
leongka
 Posté le 29/04/2011 à 20:17 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Maître astucien

bonsoir,

cela fait 2

cela fait 3

un peu beaucoup non ?

@+



Modifié par leongka le 29/04/2011 20:18
Page : [1] 
Page 1 sur 1

Vous devez être connecté pour participer à la discussion.
Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !
Recevoir PC Astuces par e-mail


La Lettre quotidienne +226 000 inscrits
Avec l'actu, des logiciels, des applis, des astuces, des bons plans, ...

Les bonnes affaires
Une fois par semaine, un récap des meilleurs offres.

Les fonds d'écran
De jolies photos pour personnaliser votre bureau. Une fois par semaine.

Les nouveaux Bons Plans
Des notifications pour ne pas rater les bons plans publiés sur le site.

Les bons plans du moment PC Astuces

Tous les Bons Plans
102,18 €Disque dur externe USB 3.0 Seagate 6 To à 102,18 € livré
Valable jusqu'au 08 Mai

Amazon Allemagne propose actuellement le disque dur Seagate Expansion Desktop Drive 6 To à 95,80 € (avec la TVA ajustée). Comptez 6,38 € pour la livraison en France soit un total de 102,18 € livré alors qu'on le trouve ailleurs à partir de 120 €. Le disque est non soudé et vous pourrez le récupérer pour l'utiliser dans un ordinateur, un NAS, etc. 

Vous pouvez utiliser votre compte Amazon France sur Amazon Allemagne et il n'y a pas de douane. 


> Voir l'offre
74,99 €Souris sans fil avec trackball Logitech MX Ergo à 74,99 €
Valable jusqu'au 08 Mai

Amazon fait une belle promotion sur la souris sans fil avec trackball Logitech MX Ergo qui passe à 74,99 € livrée gratuitement. On la trouve ailleurs autour de 100 €. Réduisant de 20% la contrainte musculaire par rapport à une souris standard,  le Logitech MX Ergo vous facilitera le travail en maintenant dans une position très stable votre main.


> Voir l'offre
79,49 €Kit de 16 Go (2 x 8 Go) de mémoire DDR4 Corsair Vengeance LPX 3200 MHz à 79,49 €
Valable jusqu'au 08 Mai

Amazon fait une promotion sur le kit de 16 Go (2x8 Go) de mémoire DDR4 Corsair Vengeance LPX 3200 MHz CL16 qui passe à 79,49 € livrée gratuitement. Avec la remontée des prix de la mémoire, on le trouve ailleurs à plus de 100 €.


> Voir l'offre

Sujets relatifs
Récupérer données de 3 fichiers Excel en 1 seul !!
Récupérer données de 3 fichiers Excel en 1 seul
[C]Recuperer données dans un string
Macro excel : regrouper plusieurs fichiers
extraire des données avec excel et VB
mysql base de données de récupération dans wampserver2
Base de données et VS 2015
VBA excel transformer date à chiffre
VBA récupérer couleur sur image collée
VBA Excel francisé
Plus de sujets relatifs à Récupérer données de 3 fichiers Excel en 1 seul !!
 > Tous les forums > Forum Autres langages