Compare colonne de deux classeurs.xls et rempli une cellule ..
Résolu/Fermé
micheleliane
Messages postés
76
Date d'inscription
mercredi 13 février 2013
Statut
Membre
Dernière intervention
15 janvier 2015
-
7 août 2014 à 22:30
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 8 août 2014 à 16:14
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 8 août 2014 à 16:14
A voir également:
- Compare colonne de deux classeurs.xls et rempli une cellule ..
- Déplacer une colonne excel - Guide
- Formule somme excel colonne - Guide
- Aller à la ligne dans une cellule excel - Guide
- Trier colonne excel - Guide
- Colonne word - Guide
10 réponses
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
8 août 2014 à 08:32
8 août 2014 à 08:32
Bonjour,
Les deux classeurs sont ils ouverts au moment du lancement de la macro?
La macro devra être dans le classeur RECEPTION_DISPO.xls?
Les deux classeurs sont ils ouverts au moment du lancement de la macro?
La macro devra être dans le classeur RECEPTION_DISPO.xls?
micheleliane
Messages postés
76
Date d'inscription
mercredi 13 février 2013
Statut
Membre
Dernière intervention
15 janvier 2015
8 août 2014 à 11:01
8 août 2014 à 11:01
BONJOUR,pijaku
La macro dans le classeur RECEPTION_DISPO.xls cela est parfait
et le classeur DISPO.xls est fermé.
MERCI
La macro dans le classeur RECEPTION_DISPO.xls cela est parfait
et le classeur DISPO.xls est fermé.
MERCI
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
8 août 2014 à 11:50
8 août 2014 à 11:50
Question subsidiaire : Combien de lignes maximum en colonne A de la Feuil1 du classeur DISPO?
(max à 5 000 lignes près...)
(max à 5 000 lignes près...)
micheleliane
Messages postés
76
Date d'inscription
mercredi 13 février 2013
Statut
Membre
Dernière intervention
15 janvier 2015
8 août 2014 à 11:57
8 août 2014 à 11:57
re BONJOUR,pijaku
Je crois que 5000 lignes seras largement suffisant
MERCI
micheleliane
Je crois que 5000 lignes seras largement suffisant
MERCI
micheleliane
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
8 août 2014 à 11:59
8 août 2014 à 11:59
En fait, ma question était inutile...
Résultat prochainement...
Résultat prochainement...
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
Modifié par pijaku le 8/08/2014 à 13:14
Modifié par pijaku le 8/08/2014 à 13:14
Bon.
Voici le code à insérer dans un module du classeur RECEPTION_DISPO.xls
Cordialement,
Franck
Voici le code à insérer dans un module du classeur RECEPTION_DISPO.xls
Sub Compare_Col_A_DISPO() Dim monWbk As Workbook Dim Chemin As String, Fichier As String Dim dl As Long, Lig As Long, Num As Long Dim Tb_Dispo(), Tb_Recep_Dispo(), Tb_Col_P() Set monWbk = ThisWorkbook Chemin = monWbk.Path & "" Fichier = "DISPO.xls" '***** TRAITEMENT SUR CLASSEUR DISPO.xls **** Workbooks.Open Chemin & Fichier 'ouverture With ActiveWorkbook With .Worksheets("Feuil1") dl = .Range("A" & Rows.Count).End(xlUp).Row Tb_Dispo = .Range("A3:A" & dl).Value 'stockage des données End With .Close False 'fermeture End With '***** TRAITEMENT SUR CLASSEUR RECEPTION_DISPO.xls **** With monWbk.Sheets("NOUVADH") dl = .Range("A" & Rows.Count).End(xlUp).Row Tb_Recep_Dispo = .Range("A3:A" & dl).Value 'stockage des données ReDim Preserve Tb_Col_P(UBound(Tb_Recep_Dispo)) 'boucle sur les données de RECEPTION_DISPO For Lig = LBound(Tb_Recep_Dispo) To UBound(Tb_Recep_Dispo) Num = 0 On Error Resume Next 'Vérification de la présence dans DISPO.xls Num = Application.Match(Tb_Recep_Dispo(Lig, 1), Application.Index(Tb_Dispo, , 1), 0) On Error GoTo 0 If Num = 0 Then 'pas de correspondance Tb_Col_P(Lig) = "Pas de correspondance dans DISPO.xls" Else 'correspondance Tb_Col_P(Lig) = "P" End If Next Lig '***** RESTITUTION DES "P" et "Pas de correspondance dans DISPO.xls" ***** .Range("P2").Resize(UBound(Tb_Col_P) + 1) = Application.Transpose(Tb_Col_P) End With End Sub
Cordialement,
Franck
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
micheleliane
Messages postés
76
Date d'inscription
mercredi 13 février 2013
Statut
Membre
Dernière intervention
15 janvier 2015
8 août 2014 à 13:12
8 août 2014 à 13:12
re BONJOUR,pijaku
J'ai erreur le nom du classeur n'ai pas bonne et je ne comprend pas comment
changer l'adresse ( C:\Users\michel\Desktop\A_COMMENTcaMARCHEDISPO.xls)
dans la ligne (12) en JAUNE ci dessous la bonne adresse
( C:\Users\michel\Desktop\A_COMMENTcaMARCHE\DISPO.xls)
Je m'excuse mais ne trouve pas
Pouvez vous expliquer ou se trouve l'adresse
MERCI
micheleliane
J'ai erreur le nom du classeur n'ai pas bonne et je ne comprend pas comment
changer l'adresse ( C:\Users\michel\Desktop\A_COMMENTcaMARCHEDISPO.xls)
dans la ligne (12) en JAUNE ci dessous la bonne adresse
( C:\Users\michel\Desktop\A_COMMENTcaMARCHE\DISPO.xls)
Je m'excuse mais ne trouve pas
Pouvez vous expliquer ou se trouve l'adresse
MERCI
micheleliane
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
Modifié par pijaku le 8/08/2014 à 13:16
Modifié par pijaku le 8/08/2014 à 13:16
Tu m'as dit que les 2 classeurs sont dans le même répertoire.
Donc, l'adresse de DISPO.xls est la même que RECEPTION_DISPO. Soit : Chemin = monWbk.Path & "\"
PS : Encore un bug de Commentçamarche. Il enlève les antislashes. Remplace dans ma macro ci dessus :
Chemin = monWbk.Path & ""
par :
Chemin = monWbk.Path & "\"
Grrrrrr!
Donc, l'adresse de DISPO.xls est la même que RECEPTION_DISPO. Soit : Chemin = monWbk.Path & "\"
PS : Encore un bug de Commentçamarche. Il enlève les antislashes. Remplace dans ma macro ci dessus :
Chemin = monWbk.Path & ""
par :
Chemin = monWbk.Path & "\"
Grrrrrr!
micheleliane
Messages postés
76
Date d'inscription
mercredi 13 février 2013
Statut
Membre
Dernière intervention
15 janvier 2015
8 août 2014 à 14:14
8 août 2014 à 14:14
re re re BONJOUR,pijaku
Pour le chemin cela fonctionne
Excuse moi je me suis encore mal exprimé pour (pas de correspondance )je voudrais
que le contenue de la cellule dans DISPO et qui ne trouve pas sa correspondance
dans RECEPTION_DISPO
Explication dans (NOUVADH de RECEPTION_DISPO)normalement tous les adhérents son inscrit
Dans (DISPO) seulement ceux qui participe mais ils peut avoir des
nouveaux qui ne sont pas encore dans l'autre classeur
En exemple le 3333 de( DISPO) n'existe pas dans(RECEPTION_DISPO) il faut le signaler
En espérant votre comprehension
MERCI
micheleliane
Pour le chemin cela fonctionne
Excuse moi je me suis encore mal exprimé pour (pas de correspondance )je voudrais
que le contenue de la cellule dans DISPO et qui ne trouve pas sa correspondance
dans RECEPTION_DISPO
Explication dans (NOUVADH de RECEPTION_DISPO)normalement tous les adhérents son inscrit
Dans (DISPO) seulement ceux qui participe mais ils peut avoir des
nouveaux qui ne sont pas encore dans l'autre classeur
En exemple le 3333 de( DISPO) n'existe pas dans(RECEPTION_DISPO) il faut le signaler
En espérant votre comprehension
MERCI
micheleliane
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
8 août 2014 à 14:17
8 août 2014 à 14:17
Comment le signale t'on?
micheleliane
Messages postés
76
Date d'inscription
mercredi 13 février 2013
Statut
Membre
Dernière intervention
15 janvier 2015
8 août 2014 à 15:13
8 août 2014 à 15:13
re BONJOUR,pijaku
Vous avez vue comment je suis nul, je voudrais qu'il faut valider qu'il n'y a pas
de correspondance pour l'ajouter dans (RECEPTION_DISPO)
Excusez-moi de ne pas savoir mieux expliquer
MERCI
micheleliane
Vous avez vue comment je suis nul, je voudrais qu'il faut valider qu'il n'y a pas
de correspondance pour l'ajouter dans (RECEPTION_DISPO)
Excusez-moi de ne pas savoir mieux expliquer
MERCI
micheleliane
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
8 août 2014 à 15:35
8 août 2014 à 15:35
Un message à l'utilisateur, du genre :
Si non on passe au suivant.
La référence "blabla" est dans le DISPO mais pas dans RECEPTION.Si oui : on ajoute quoi? ou?
Souhaitez vous l'ajouter
OUI NON
Si non on passe au suivant.
micheleliane
Messages postés
76
Date d'inscription
mercredi 13 février 2013
Statut
Membre
Dernière intervention
15 janvier 2015
8 août 2014 à 15:51
8 août 2014 à 15:51
re BONJOUR pijaku
La référence que vous indiquez est parfaite oui il faut l'ajouter
MERCI à l'avance
micheleliane
La référence que vous indiquez est parfaite oui il faut l'ajouter
MERCI à l'avance
micheleliane
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
8 août 2014 à 15:57
8 août 2014 à 15:57
RE-
Et voici :
Et voici :
Sub Compare_Col_A_DISPO()
Dim monWbk As Workbook
Dim Chemin As String, Fichier As String
Dim dl As Long, Lig As Long, Num As Long
Dim Tb_Dispo(), Tb_Recep_Dispo(), Tb_Col_P()
Set monWbk = ThisWorkbook
Chemin = monWbk.Path & ""
Fichier = "DISPO.xls"
'***** TRAITEMENT SUR CLASSEUR DISPO.xls ****
Workbooks.Open Chemin & Fichier 'ouverture
With ActiveWorkbook
With .Worksheets("Feuil1")
dl = .Range("A" & Rows.Count).End(xlUp).Row
Tb_Dispo = .Range("A3:A" & dl).Value 'stockage des données
End With
.Close False 'fermeture
End With
'***** TRAITEMENT SUR CLASSEUR RECEPTION_DISPO.xls ****
With monWbk.Sheets("NOUVADH")
dl = .Range("A" & Rows.Count).End(xlUp).Row
Tb_Recep_Dispo = .Range("A3:A" & dl).Value 'stockage des données
ReDim Preserve Tb_Col_P(UBound(Tb_Recep_Dispo))
'boucle sur les données de RECEPTION_DISPO
For Lig = LBound(Tb_Recep_Dispo) To UBound(Tb_Recep_Dispo)
Num = 0
On Error Resume Next
'Vérification de la présence dans DISPO.xls
Num = Application.Match(Tb_Recep_Dispo(Lig, 1), Application.Index(Tb_Dispo, , 1), 0)
On Error GoTo 0
If Num = 0 Then
'pas de correspondance
Tb_Col_P(Lig) = ""
Else
'correspondance
Tb_Col_P(Lig) = "P"
End If
Next Lig
'***** RESTITUTION DES "P" et "Pas de correspondance dans DISPO.xls" *****
.Range("P2").Resize(UBound(Tb_Col_P) + 1) = Application.Transpose(Tb_Col_P)
'***** TRAITEMENT des références disponibles dans DISPO mais pas dans RECEPTION
For Lig = LBound(Tb_Dispo) To UBound(Tb_Dispo)
Num = 0
On Error Resume Next
'Vérification de la présence dans RECEPTION_DISPO.xls
Num = Application.Match(Tb_Dispo(Lig, 1), Application.Index(Tb_Recep_Dispo, , 1), 0)
On Error GoTo 0
If Num = 0 Then
'pas de correspondance
If MsgBox("La référence : " & Tb_Dispo(Lig, 1) & ", présente dans DISPO.xls, n'est pas enregistrée dans RECEPTION_DISPO.xls." & Chr(10) & "Voulez-vous l'ajouter?", vbYesNo + vbQuestion) = vbYes Then
.Range("A" & Rows.Count).End(xlUp).Offset(1, 0) = Tb_Dispo(Lig, 1)
End If
End If
Next Lig
End With
End Sub
micheleliane
Messages postés
76
Date d'inscription
mercredi 13 février 2013
Statut
Membre
Dernière intervention
15 janvier 2015
8 août 2014 à 16:13
8 août 2014 à 16:13
BONNE SOIREE,pijaku
MERCI cela fonctionne très bien
MERCI de votre patience
MERCI du temps que vous m'avez accordé
micheleliane
MERCI cela fonctionne très bien
MERCI de votre patience
MERCI du temps que vous m'avez accordé
micheleliane
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
8 août 2014 à 16:14
8 août 2014 à 16:14
Pas de quoi.
Bon week end!
Bon week end!