Besoin d'un avis extérieur

Y compris Power BI, Power Query et toute autre question en lien avec Excel
Répondre
B
BRIGO
Nouveau venu
Nouveau venu
Messages : 8
Inscrit le : 22 janvier 2018
Version d'Excel : 2016 FR

Message par BRIGO » 22 janvier 2018, 16:40

Bonjour, j'ai un problème et je ne sais pas comment m'y prendre pour le résoudre ainsi je fais appel à votre aide pour m'en sortir . L'erreur 1004 apparait sur une macro quand je la lance or je ne parvient pas à détecter mon erreur.
Je dois faire correspondre 2 tableaux qui ont en commun le numéro de matricule concatener les colonnes correspondantes des tableaux de manières à avoir les informations des 2 tableaux qui coincident sur un troisème tableau à condition que sur la ligne le matricule soit le même et que la date de début coincide à plus ou moins 3 jours.
Ma Synthaxe est la suivante :

Sub Correspondance2()

'definition des variables
Dim I As Long
Dim J As Long
Dim H As Long
Dim Lignefin As Long
Dim Matricule As String
Dim DDC As Date
Dim DDWF As Date
Dim K As Long



'ligne sur laquelle on va commencer à coller les données
H = 2
'ligne sur laquelle on va chercher
K = 2

DDC = Sheets("FR03").Cells(K, 5).Value
DDWF = Sheets("WF").Cells(I, 10).Value

'définit la dernière ligne sur laquelle il y aura des données à analyser

Sheets("WF").Select
Range("A1048575").Select
Selection.End(xlUp).Select

'lignefin sera égale à la valeur de la ligne de la cellule selectionnée

Lignefin = ActiveCell.Row



Matricule = Sheets("FR03").Cells(K, 1).Value

'début de la première boucle pour trouver les lignes contenant la ville
For I = 2 To Lignefin Step 1

'si la cellule contient la valeur il va en line1 sinon en line2 ou la boucle se poursuit.
If Sheets("WF").Cells(I, 2).Value = Matricule Then GoTo Line1 Else GoTo Line2

Line1:

'début de a deuxième boucle qui va copier coller les données entre la colonne 1 et la 17ème
For J = 1 To 25 Step 1
If DDWF - DDC >= 3 Then

Sheets("Compilation").Cells(H, J).Value = Sheets("WF").Cells(I, J).Value & Sheets("FR03").Cells(K, J)

End If


'la boucle continue pour l'alimentation de l'onglet conso

Next J

'fin de la deuxième boucle on rajoute une ligne pour que les données se collent dans la ligne suivante dans l'onglet Conso
H = H + 1

Line2:

Next I

K = K + 1

Sheets("FR03").Select
Cells(K, 1).Select

End Sub

Voyez vous une erreur ?Des axes d'améliorations dans la synthaxe ?

Merci d'avance pour vos réponses <3
g
gmb
Fanatique d'Excel
Fanatique d'Excel
Messages : 13'055
Appréciations reçues : 388
Inscrit le : 4 avril 2013
Version d'Excel : 2016

Message par gmb » 22 janvier 2018, 18:45

Bonjour et bienvenue sur le forum

Ce serait beaucoup plus simple si tu pouvais joindre ton fichier, même avec des noms bidons si nécessaire...
Bye !
1 membre du forum aime ce message.
B
BRIGO
Nouveau venu
Nouveau venu
Messages : 8
Inscrit le : 22 janvier 2018
Version d'Excel : 2016 FR

Message par BRIGO » 23 janvier 2018, 08:55

Bonjour , merci de ton acceuil , j'ai modifié les documents pour garder la confidentialité.
J'ai besoin de faire correspondre les références du fichier faux noms avec celles de l'autre fichier sous conditions que les dates soient les mêmes à 3 jours près. Et si ces conditions sont remplis concaténer les colonnes correspondantes . au tableau fichier faux noms
Fichier faux nom .xlsx
(514.97 Kio) Téléchargé 11 fois
Classeur2.xlsx
(585.85 Kio) Téléchargé 9 fois
g
gmb
Fanatique d'Excel
Fanatique d'Excel
Messages : 13'055
Appréciations reçues : 388
Inscrit le : 4 avril 2013
Version d'Excel : 2016

Message par gmb » 23 janvier 2018, 10:01

Bonjour

Quelques questions :
BRIGO a écrit :
23 janvier 2018, 08:55
J'ai besoin de faire correspondre les références du fichier faux noms avec celles de l'autre fichier
Comment faire ? les données des colonnes "Références" sur les 2 fichiers n'ont rien de commun.
si ces conditions sont remplis concaténer les colonnes correspondantes . au tableau fichier faux noms
Peux-tu donner un exemple du résultat attendu ?
Bye !
h
h2so4
Passionné d'Excel
Passionné d'Excel
Messages : 9'461
Appréciations reçues : 428
Inscrit le : 16 juin 2013
Version d'Excel : 365 UK Windows 10

Message par h2so4 » 23 janvier 2018, 10:06

Bonjour,


je suppose que tu reçois l'erreur sur cette ligne. La variable I n'est pas initialisée et donc vba lui attribue la valeur 0. 0 qui n'est pas une valeur correcte pour les paramètres de cells().
DDWF = Sheets("WF").Cells(I, 10).Value
B
BRIGO
Nouveau venu
Nouveau venu
Messages : 8
Inscrit le : 22 janvier 2018
Version d'Excel : 2016 FR

Message par BRIGO » 23 janvier 2018, 10:21

Tout d'abbord merci de vos réponses.
h2so4 en effet c'était sur cette ligne j'ai d'ailleurs changé mon code :

Sub Correspondance2()

'definition des variables
Dim I As Long
Dim J As Long
Dim H As Long
Dim Lignefin As Long
Dim Matricule As String
Dim K As Long
Dim DD As Date


H = 2

Sheets("WFE").Select
Range("A100000").Select
Selection.End(xlUp).Select

Lignefin = ActiveCell.Row
For K = 1 To Lignefin
Matricule = Sheets("FR03").Cells(K, 1).Value
DD = Sheets("FR03").Cells(K, 5).Value

For I = 2 To Lignefin
If Sheets("WFE").Cells(I, 2).Value Like Matricule And Sheets("WFE").Cells(I, 6).Value <= DD + 3 Then GoTo Line1 Else GoTo Line2

Line1:
For J = 1 To 10
Sheets("Compilation").Cells(H, J + 2).Value = Sheets("WFE").Cells(I, J).Value
Next J
H = H + 1

Line2:
Next I

Next K

Sheets("FR03").Select
Cells(K, 1).Select

End Sub

Mais même comme cela , il ne se lance pas pour erreur d'incompatibilité.

gmb :

Il y a des références communes mais la difficulté est que celle du fichier faux noms ne sont pas toutes dans l'autre et qu'elles ne sont pas à la même place dans la matrice.
Ainsi le résultat attendu serait la reférence du premier document dans la première colonne de la feuil "compilation" ,date de début dans la deuxième colonne , référence dans la troisième et le reste du tableau dans les autres colonnes.
B
BRIGO
Nouveau venu
Nouveau venu
Messages : 8
Inscrit le : 22 janvier 2018
Version d'Excel : 2016 FR

Message par BRIGO » 23 janvier 2018, 14:57

gmb :
Sur le fichier Faux noms les références correspondent au matricule du 2 ième fichier , je sais pas si ça répond à ta question .
Je reste à votre disposition si vous avez besoin de plus de détails
g
gmb
Fanatique d'Excel
Fanatique d'Excel
Messages : 13'055
Appréciations reçues : 388
Inscrit le : 4 avril 2013
Version d'Excel : 2016

Message par gmb » 23 janvier 2018, 16:42

Comme je te l'ai déjà demandé, ce qu'il me faudrait c'est un exemple du résultat attendu...
Bye !
B
BRIGO
Nouveau venu
Nouveau venu
Messages : 8
Inscrit le : 22 janvier 2018
Version d'Excel : 2016 FR

Message par BRIGO » 24 janvier 2018, 09:12

Désolé de ne pas avoir pu répondre avant mais voilà ce que je voudrais idéalemment. Avec évidemment la colonne référence qui correspond au bon matricule. La difficulté réside dans le fait qu'il y a 4 cas de figure , le fichier faux nom est enregitré en comptabilité et donc au mois tandis que l'autre est enregistré en fonction du nombre d'arrêt ( 1 référence=1 arrêt) donc les 4 cas de figures sont :
-1 matricule dans le fichier faux noms correspond à 1 unique référence dans l'autre.
- PLusieurs matricule dans le fichier faux noms correspondent à une unique référence dans l'autre
-plusieurs réféences dans l'autre correspondent à 1 unique matricule dans le fichier faux noms
et enfin plusieurs matricule pour plusieurs référence( mais pas forcément le même nombre de ligne).
Cela est-il clair ?
Exemple.xlsx
(658.24 Kio) Téléchargé 4 fois
Répondre
  • Sujets similaires
    Réponses
    Vues
    Dernier message