Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

comparaison de tableaux vba

9 réponses
Avatar
cousinhub
Bonjour, ou plutôt bonsoir.
Une petite question pour le fun.
2 feuilles comprenant une quinzaine de colonnes et un nombre x de lignes.
dans la feuille archives, ben les archives.
Dans la feuille modification mensuelle, le même tableau, avec peut-être
des lignes identiques, et sûrement des lignes différentes.
Le but de ma question : est-il possible de charger ces différents
tableaux dans des Arrays, et les comparer, puis récupérer les données
différentes et les écrire dans la feuille archives, sachant que la
comparaison doit se faire sur 3 critères?
On obtiendra donc 2 tableaux en mémoire, chacun avec un nombre de lignes
différent, mais avec les 3 colonnes à tester?
Ce que je fais pour le moment,j'utilise un MATCH :
(""" & Cells(I, 2) & """&""" & Cells(I, 3) & """&""" & Cells(I, 4) &
""",nom&prenom&age,0)")
nom, prenom et age étant des zones nommées, I étant le numéro de la
ligne à tester dans la feuille Modif.
Merci et allez la France, qu'on bouffe ces Rosbifs :D

9 réponses

Avatar
JB
Bonsoir,

Un exemple:
http://boisgontierjacques.free.fr/fichiers/Filtre/FiltreElaboreNonCorrespon dance.xls
http://boisgontierjacques.free.fr/fichiers/MFC/BDCompareMFC.xls

JB
http://boisgontierjacques.free.fr/

On 18 août, 20:50, cousinhub wrote:
Bonjour, ou plutôt bonsoir.
Une petite question pour le fun.
2 feuilles comprenant une quinzaine de colonnes et un nombre x de lignes.
dans la feuille archives, ben les archives.
Dans la feuille modification mensuelle, le même tableau, avec peut-êt re
des lignes identiques, et sûrement des lignes différentes.
Le but de ma question : est-il possible de charger ces différents
tableaux dans des Arrays, et les comparer, puis récupérer les donné es
différentes et les écrire dans la feuille archives, sachant que la
comparaison doit se faire sur 3 critères?
On obtiendra donc 2 tableaux en mémoire, chacun avec un nombre de lignes
différent, mais avec les 3 colonnes à tester?
Ce que je fais pour le moment,j'utilise un MATCH :
(""" & Cells(I, 2) & """&""" & Cells(I, 3) & """&""" & Cells(I, 4) &
""",nom&prenom&age,0)")
nom, prenom et age étant des zones nommées, I étant le numéro de la
ligne à tester dans la feuille Modif.
Merci et allez la France, qu'on bouffe ces Rosbifs :D


Avatar
Trirème
Bonsoir cousinhub,

Merci et allez la France, qu'on bouffe ces Rosbifs :D
Ceci est un forum modéré. Non à toute incitation à la violence ;-)

... Allez les petits !

Cordialement,
Trirème

Avatar
Trirème
Bonsoir JB,
NON Lille n'est ni en Haute Marne, ni dans la Marne mais dans le Nord (59)
;-)
Trirème

Bonsoir,

Un exemple:
http://boisgontierjacques.free.fr/fichiers/Filtre/FiltreElaboreNonCorrespondance.xls
http://boisgontierjacques.free.fr/fichiers/MFC/BDCompareMFC.xls

JB
http://boisgontierjacques.free.fr/

On 18 août, 20:50, cousinhub wrote:
Bonjour, ou plutôt bonsoir.
Une petite question pour le fun.
2 feuilles comprenant une quinzaine de colonnes et un nombre x de lignes.
dans la feuille archives, ben les archives.
Dans la feuille modification mensuelle, le même tableau, avec peut-être
des lignes identiques, et sûrement des lignes différentes.
Le but de ma question : est-il possible de charger ces différents
tableaux dans des Arrays, et les comparer, puis récupérer les données
différentes et les écrire dans la feuille archives, sachant que la
comparaison doit se faire sur 3 critères?
On obtiendra donc 2 tableaux en mémoire, chacun avec un nombre de lignes
différent, mais avec les 3 colonnes à tester?
Ce que je fais pour le moment,j'utilise un MATCH :
(""" & Cells(I, 2) & """&""" & Cells(I, 3) & """&""" & Cells(I, 4) &
""",nom&prenom&age,0)")
nom, prenom et age étant des zones nommées, I étant le numéro de la
ligne à tester dans la feuille Modif.
Merci et allez la France, qu'on bouffe ces Rosbifs :D






Avatar
cousinhub
Bonsoir, et merci JB, mais ce n'était pas tout à fait ce que je désirais.
Je voulais comparer ces deux tableaux en VBA, par la méthode des Arrays
(j'ai trouvé pour comparer UNE valeur, mais pour trois....
Merci encore (PS, j'ai déjà pratiquement tous tes fichiers, ton site est
dans mes préférés, bravo pour le travail et merci de le faire partager)

Bonsoir,

Un exemple:
http://boisgontierjacques.free.fr/fichiers/Filtre/FiltreElaboreNonCorrespondance.xls
http://boisgontierjacques.free.fr/fichiers/MFC/BDCompareMFC.xls

JB
http://boisgontierjacques.free.fr/

On 18 août, 20:50, cousinhub wrote:
Bonjour, ou plutôt bonsoir.
Une petite question pour le fun.
2 feuilles comprenant une quinzaine de colonnes et un nombre x de lignes.
dans la feuille archives, ben les archives.
Dans la feuille modification mensuelle, le même tableau, avec peut-être
des lignes identiques, et sûrement des lignes différentes.
Le but de ma question : est-il possible de charger ces différents
tableaux dans des Arrays, et les comparer, puis récupérer les données
différentes et les écrire dans la feuille archives, sachant que la
comparaison doit se faire sur 3 critères?
On obtiendra donc 2 tableaux en mémoire, chacun avec un nombre de lignes
différent, mais avec les 3 colonnes à tester?
Ce que je fais pour le moment,j'utilise un MATCH :
(""" & Cells(I, 2) & """&""" & Cells(I, 3) & """&""" & Cells(I, 4) &
""",nom&prenom&age,0)")
nom, prenom et age étant des zones nommées, I étant le numéro de la
ligne à tester dans la feuille Modif.
Merci et allez la France, qu'on bouffe ces Rosbifs :D






Avatar
cousinhub
On n'est pas la SPA, non plus :D

Bonsoir cousinhub,

Merci et allez la France, qu'on bouffe ces Rosbifs :D
Ceci est un forum modéré. Non à toute incitation à la violence ;-)

... Allez les petits !

Cordialement,
Trirème



Avatar
JB
1/Approche Match matriciel:

p = Evaluate("match(1,(nom¡)*(prenom±),0)")
If Not IsError(p) Then
Range("nom")(1).Offset(p - 1).Select
Else
MsgBox "inconnu"
End If

2/

n = "Dupont"
p = "Jean"
For i = 1 To Range("nom").Count
If Range("nom")(i) = n And Range("prenom")(i) = p Then
MsgBox "ok"
End If
Next i

3/ Tableaux (doit être + rapide)

n = "Dupont"
p = "Jean"
Set tnom = [Nom] ' transfert range dans tableau
Set tprenom = [prenom]
For i = 1 To Range("nom").Count
If tnom(i) = n And tprenom(i) = p Then
MsgBox "ok"
End If
Next i
End Sub

JB



On 18 août, 21:32, cousinhub wrote:
Bonsoir, et merci JB, mais ce n'était pas tout à fait ce que je dés irais.
Je voulais comparer ces deux tableaux en VBA, par la méthode des Arrays
(j'ai trouvé pour comparer UNE valeur, mais pour trois....
Merci encore (PS, j'ai déjà pratiquement tous tes fichiers, ton site est
dans mes préférés, bravo pour le travail et merci de le faire parta ger)




Bonsoir,

Un exemple:
http://boisgontierjacques.free.fr/fichiers/Filtre/FiltreElaboreNonCor...
http://boisgontierjacques.free.fr/fichiers/MFC/BDCompareMFC.xls

JB
http://boisgontierjacques.free.fr/

On 18 août, 20:50, cousinhub wrote:
Bonjour, ou plutôt bonsoir.
Une petite question pour le fun.
2 feuilles comprenant une quinzaine de colonnes et un nombre x de lign es.
dans la feuille archives, ben les archives.
Dans la feuille modification mensuelle, le même tableau, avec peut- être
des lignes identiques, et sûrement des lignes différentes.
Le but de ma question : est-il possible de charger ces différents
tableaux dans des Arrays, et les comparer, puis récupérer les donn ées
différentes et les écrire dans la feuille archives, sachant que la
comparaison doit se faire sur 3 critères?
On obtiendra donc 2 tableaux en mémoire, chacun avec un nombre de li gnes
différent, mais avec les 3 colonnes à tester?
Ce que je fais pour le moment,j'utilise un MATCH :
(""" & Cells(I, 2) & """&""" & Cells(I, 3) & """&""" & Cells(I, 4) &
""",nom&prenom&age,0)")
nom, prenom et age étant des zones nommées, I étant le numéro de la
ligne à tester dans la feuille Modif.
Merci et allez la France, qu'on bouffe ces Rosbifs :D- Masquer le text e des messages précédents -



- Afficher le texte des messages précédents -




Avatar
cousinhub
re, et merci, je vais travailler sur ta 3 ème proposition, avec trois
conditions, cela devrait fonctionner également
Bonne soirée

1/Approche Match matriciel:

p = Evaluate("match(1,(nom¡)*(prenom±),0)")
If Not IsError(p) Then
Range("nom")(1).Offset(p - 1).Select
Else
MsgBox "inconnu"
End If

2/

n = "Dupont"
p = "Jean"
For i = 1 To Range("nom").Count
If Range("nom")(i) = n And Range("prenom")(i) = p Then
MsgBox "ok"
End If
Next i

3/ Tableaux (doit être + rapide)

n = "Dupont"
p = "Jean"
Set tnom = [Nom] ' transfert range dans tableau
Set tprenom = [prenom]
For i = 1 To Range("nom").Count
If tnom(i) = n And tprenom(i) = p Then
MsgBox "ok"
End If
Next i
End Sub

JB



On 18 août, 21:32, cousinhub wrote:
Bonsoir, et merci JB, mais ce n'était pas tout à fait ce que je désirais.
Je voulais comparer ces deux tableaux en VBA, par la méthode des Arrays
(j'ai trouvé pour comparer UNE valeur, mais pour trois....
Merci encore (PS, j'ai déjà pratiquement tous tes fichiers, ton site est
dans mes préférés, bravo pour le travail et merci de le faire partager)




Bonsoir,
Un exemple:
http://boisgontierjacques.free.fr/fichiers/Filtre/FiltreElaboreNonCor...
http://boisgontierjacques.free.fr/fichiers/MFC/BDCompareMFC.xls
JB
http://boisgontierjacques.free.fr/
On 18 août, 20:50, cousinhub wrote:
Bonjour, ou plutôt bonsoir.
Une petite question pour le fun.
2 feuilles comprenant une quinzaine de colonnes et un nombre x de lignes.
dans la feuille archives, ben les archives.
Dans la feuille modification mensuelle, le même tableau, avec peut-être
des lignes identiques, et sûrement des lignes différentes.
Le but de ma question : est-il possible de charger ces différents
tableaux dans des Arrays, et les comparer, puis récupérer les données
différentes et les écrire dans la feuille archives, sachant que la
comparaison doit se faire sur 3 critères?
On obtiendra donc 2 tableaux en mémoire, chacun avec un nombre de lignes
différent, mais avec les 3 colonnes à tester?
Ce que je fais pour le moment,j'utilise un MATCH :
(""" & Cells(I, 2) & """&""" & Cells(I, 3) & """&""" & Cells(I, 4) &
""",nom&prenom&age,0)")
nom, prenom et age étant des zones nommées, I étant le numéro de la
ligne à tester dans la feuille Modif.
Merci et allez la France, qu'on bouffe ces Rosbifs :D- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -










Avatar
JB
http://cjoint.com/?isxRwhxvjn

JB
On 18 août, 22:58, cousinhub wrote:
re, et merci, je vais travailler sur ta 3 ème proposition, avec trois
conditions, cela devrait fonctionner également
Bonne soirée




1/Approche Match matriciel:

p = Evaluate("match(1,(nom¡)*(prenom±),0)")
If Not IsError(p) Then
Range("nom")(1).Offset(p - 1).Select
Else
MsgBox "inconnu"
End If

2/

n = "Dupont"
p = "Jean"
For i = 1 To Range("nom").Count
If Range("nom")(i) = n And Range("prenom")(i) = p Then
MsgBox "ok"
End If
Next i

3/ Tableaux (doit être + rapide)

n = "Dupont"
p = "Jean"
Set tnom = [Nom] ' transfert range dans tableau
Set tprenom = [prenom]
For i = 1 To Range("nom").Count
If tnom(i) = n And tprenom(i) = p Then
MsgBox "ok"
End If
Next i
End Sub

JB

On 18 août, 21:32, cousinhub wrote:
Bonsoir, et merci JB, mais ce n'était pas tout à fait ce que je d ésirais.
Je voulais comparer ces deux tableaux en VBA, par la méthode des Arr ays
(j'ai trouvé pour comparer UNE valeur, mais pour trois....
Merci encore (PS, j'ai déjà pratiquement tous tes fichiers, ton si te est
dans mes préférés, bravo pour le travail et merci de le faire pa rtager)




Bonsoir,
Un exemple:
http://boisgontierjacques.free.fr/fichiers/Filtre/FiltreElaboreNonCor. ..
http://boisgontierjacques.free.fr/fichiers/MFC/BDCompareMFC.xls
JB
http://boisgontierjacques.free.fr/
On 18 août, 20:50, cousinhub wrote:
Bonjour, ou plutôt bonsoir.
Une petite question pour le fun.
2 feuilles comprenant une quinzaine de colonnes et un nombre x de li gnes.
dans la feuille archives, ben les archives.
Dans la feuille modification mensuelle, le même tableau, avec peut -être
des lignes identiques, et sûrement des lignes différentes.
Le but de ma question : est-il possible de charger ces différents
tableaux dans des Arrays, et les comparer, puis récupérer les do nnées
différentes et les écrire dans la feuille archives, sachant que la
comparaison doit se faire sur 3 critères?
On obtiendra donc 2 tableaux en mémoire, chacun avec un nombre de lignes
différent, mais avec les 3 colonnes à tester?
Ce que je fais pour le moment,j'utilise un MATCH :
(""" & Cells(I, 2) & """&""" & Cells(I, 3) & """&""" & Cells(I, 4) &
""",nom&prenom&age,0)")
nom, prenom et age étant des zones nommées, I étant le numér o de la
ligne à tester dans la feuille Modif.
Merci et allez la France, qu'on bouffe ces Rosbifs :D- Masquer le te xte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte de s messages précédents -





- Afficher le texte des messages précédents -






Avatar
JB
Approche BD (+rapide)

http://cjoint.com/?isx6GwGiVI

JB

On 18 août, 22:58, cousinhub wrote:
re, et merci, je vais travailler sur ta 3 ème proposition, avec trois
conditions, cela devrait fonctionner également
Bonne soirée




1/Approche Match matriciel:

p = Evaluate("match(1,(nom¡)*(prenom±),0)")
If Not IsError(p) Then
Range("nom")(1).Offset(p - 1).Select
Else
MsgBox "inconnu"
End If

2/

n = "Dupont"
p = "Jean"
For i = 1 To Range("nom").Count
If Range("nom")(i) = n And Range("prenom")(i) = p Then
MsgBox "ok"
End If
Next i

3/ Tableaux (doit être + rapide)

n = "Dupont"
p = "Jean"
Set tnom = [Nom] ' transfert range dans tableau
Set tprenom = [prenom]
For i = 1 To Range("nom").Count
If tnom(i) = n And tprenom(i) = p Then
MsgBox "ok"
End If
Next i
End Sub

JB

On 18 août, 21:32, cousinhub wrote:
Bonsoir, et merci JB, mais ce n'était pas tout à fait ce que je d ésirais.
Je voulais comparer ces deux tableaux en VBA, par la méthode des Arr ays
(j'ai trouvé pour comparer UNE valeur, mais pour trois....
Merci encore (PS, j'ai déjà pratiquement tous tes fichiers, ton si te est
dans mes préférés, bravo pour le travail et merci de le faire pa rtager)




Bonsoir,
Un exemple:
http://boisgontierjacques.free.fr/fichiers/Filtre/FiltreElaboreNonCor. ..
http://boisgontierjacques.free.fr/fichiers/MFC/BDCompareMFC.xls
JB
http://boisgontierjacques.free.fr/
On 18 août, 20:50, cousinhub wrote:
Bonjour, ou plutôt bonsoir.
Une petite question pour le fun.
2 feuilles comprenant une quinzaine de colonnes et un nombre x de li gnes.
dans la feuille archives, ben les archives.
Dans la feuille modification mensuelle, le même tableau, avec peut -être
des lignes identiques, et sûrement des lignes différentes.
Le but de ma question : est-il possible de charger ces différents
tableaux dans des Arrays, et les comparer, puis récupérer les do nnées
différentes et les écrire dans la feuille archives, sachant que la
comparaison doit se faire sur 3 critères?
On obtiendra donc 2 tableaux en mémoire, chacun avec un nombre de lignes
différent, mais avec les 3 colonnes à tester?
Ce que je fais pour le moment,j'utilise un MATCH :
(""" & Cells(I, 2) & """&""" & Cells(I, 3) & """&""" & Cells(I, 4) &
""",nom&prenom&age,0)")
nom, prenom et age étant des zones nommées, I étant le numér o de la
ligne à tester dans la feuille Modif.
Merci et allez la France, qu'on bouffe ces Rosbifs :D- Masquer le te xte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte de s messages précédents -





- Afficher le texte des messages précédents -