OVH Cloud OVH Cloud

ranger le réultat d'une recherche

4 réponses
Avatar
nbarreau
Bonjour,
j'ai crée une macro qui compare les entrées de 2 onglets dans mon
classeur. Le résultat de cette comparaison qui correspond à écrire dans
le troisième onglet les entrées qui sont dans l'onglet 1 mais pas dans
l'onglet 2 s'écrit sur une colonne.
J'aimerai qu'il s'écrive sur plusieurs colonne et pour être plus précis
que le nombre de colonne soit déterminé automatiquement en fonction du
nombre de d'entrée à écrire.
Quelqu'un a une idée ?

Merci d'avance
Nico

4 réponses

Avatar
isabelle
bonjour Nico,

si j'ai bien compris, il faut à partir d'un nombre de colonne déterminer à l'avance sur l'onglet 3,
y inscrire des données.
par exemple si je choisi que le nombre de colonne est 4 et qu'il y a 10 valeurs trouver
en onglet 1 qui ne se retrouve pas sur l'onglet 2

les données seront inscrite dans cette ordre :

1 2 3 4
5 6 7 8
9 10

est bien ça qu'il faut faire ?
a+
isabelle



Bonjour,
j'ai crée une macro qui compare les entrées de 2 onglets dans mon
classeur. Le résultat de cette comparaison qui correspond à écrire dans
le troisième onglet les entrées qui sont dans l'onglet 1 mais pas dans
l'onglet 2 s'écrit sur une colonne.
J'aimerai qu'il s'écrive sur plusieurs colonne et pour être plus précis
que le nombre de colonne soit déterminé automatiquement en fonction du
nombre de d'entrée à écrire.
Quelqu'un a une idée ?

Merci d'avance
Nico


Avatar
isabelle
si réponse affirmative, voilà:

Sub Macro1()
m = Range("A1:A" & Sheets("Feuil1").Range("A65536").End(xlUp).Row).Address
n = Range("A1:A" & Sheets("Feuil2").Range("A65536").End(xlUp).Row).Address
lig = 1
col = 0
For Each c In Sheets("Feuil1").Range(n)
If IsError(Evaluate("MATCH(" & c & ",Feuil2!" & m & ",0)")) Then
Err.Clear
col = col + 1
If col > 4 Then
lig = lig + 1
col = 1
End If
Sheets("Feuil3").Cells(lig, col) = c
End If
Next
End Sub

isabelle


Bonjour,
j'ai crée une macro qui compare les entrées de 2 onglets dans mon
classeur. Le résultat de cette comparaison qui correspond à écrire dans
le troisième onglet les entrées qui sont dans l'onglet 1 mais pas dans
l'onglet 2 s'écrit sur une colonne.
J'aimerai qu'il s'écrive sur plusieurs colonne et pour être plus précis
que le nombre de colonne soit déterminé automatiquement en fonction du
nombre de d'entrée à écrire.
Quelqu'un a une idée ?

Merci d'avance
Nico


Avatar
nbarreau
Salut Isabelle,
oui on peut résumer la situation ainsi. Le nombre de colonne déterminé à
l'avance le serait grâce à une cellule que l'utilisateur remplirait.
As tu une idée ?
Merci d'avance,
Nico

bonjour Nico,

si j'ai bien compris, il faut à partir d'un nombre de colonne
déterminer à l'avance sur l'onglet 3,
y inscrire des données.
par exemple si je choisi que le nombre de colonne est 4 et qu'il y a 10
valeurs trouver
en onglet 1 qui ne se retrouve pas sur l'onglet 2

les données seront inscrite dans cette ordre :

1 2 3 4
5 6 7 8
9 10

est bien ça qu'il faut faire ?
a+
isabelle




Bonjour,
j'ai crée une macro qui compare les entrées de 2 onglets dans mon
classeur. Le résultat de cette comparaison qui correspond à écrire
dans le troisième onglet les entrées qui sont dans l'onglet 1 mais pas
dans l'onglet 2 s'écrit sur une colonne.
J'aimerai qu'il s'écrive sur plusieurs colonne et pour être plus
précis que le nombre de colonne soit déterminé automatiquement en
fonction du nombre de d'entrée à écrire.
Quelqu'un a une idée ?

Merci d'avance
Nico




Avatar
isabelle
voilà:

il faut remplacer sur la ligne
If col > 4 Then
le chiffre 4 par la référence à la cellule contenant la variable nombre de colonne.

Sub Macro1()
m = Range("A1:A" & Sheets("Feuil1").Range("A65536").End(xlUp).Row).Address
n = Range("A1:A" & Sheets("Feuil2").Range("A65536").End(xlUp).Row).Address
lig = 1
col = 0
For Each c In Sheets("Feuil1").Range(n)
If IsError(Evaluate("MATCH(" & c & ",Feuil2!" & m & ",0)")) Then
Err.Clear
col = col + 1
If col > 4 Then
lig = lig + 1
col = 1
End If
Sheets("Feuil3").Cells(lig, col) = c
End If
Next
End Sub

isabelle


Salut Isabelle,
oui on peut résumer la situation ainsi. Le nombre de colonne déterminé à
l'avance le serait grâce à une cellule que l'utilisateur remplirait.
As tu une idée ?
Merci d'avance,
Nico


bonjour Nico,

si j'ai bien compris, il faut à partir d'un nombre de colonne
déterminer à l'avance sur l'onglet 3,
y inscrire des données.
par exemple si je choisi que le nombre de colonne est 4 et qu'il y a
10 valeurs trouver
en onglet 1 qui ne se retrouve pas sur l'onglet 2

les données seront inscrite dans cette ordre :

1 2 3 4
5 6 7 8
9 10

est bien ça qu'il faut faire ?
a+
isabelle




Bonjour,
j'ai crée une macro qui compare les entrées de 2 onglets dans mon
classeur. Le résultat de cette comparaison qui correspond à écrire
dans le troisième onglet les entrées qui sont dans l'onglet 1 mais
pas dans l'onglet 2 s'écrit sur une colonne.
J'aimerai qu'il s'écrive sur plusieurs colonne et pour être plus
précis que le nombre de colonne soit déterminé automatiquement en
fonction du nombre de d'entrée à écrire.
Quelqu'un a une idée ?

Merci d'avance
Nico