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

test sur n° dans plusieurs fichiers à la fois

3 réponses
Avatar
PJ
Bonjour à tous,

voilà, j'ai crée un petit fichier excel pour la gestion de mon stock. J'ai
étendu ce fichier à chaque reference soit 6 fichiers ayant la même base. Seul
le nom diffère.
Voilà ce que je cherche à faire: lors de la saisie dans un useform, je
voudrais que sur le nombre que je viens d'entrer, soit fait un test
d'existance par rapport à chaque feuille "saisie" de mes 6 fichiers. En gros,
je rentre un numéro de production et je voudrais voir si il n'existe pas déjà
pour cette ref ou pour les 5 autres. L'historique de chaque opération étant
dans la feuille "saisie" de chaque fichier.

Merci d'avance de votre aide et si ce n'est pas assez clair, je vous en
prie, lachez-vous et je reformulerai.
Merci encore et joyeux noel à tous.

PJ

3 réponses

Avatar
Daniel
Bonjour.
Regarde le classeur à l'adresse :
http://cjoint.com/?mwl07aPUKn
Le code suivant suppose que :
- les fichiers soient dans le même répertoire (dossier) défini par la
constante Chemin.
- Les fichiers sont nommés Ref1.xls, Ref2.xls, Ref3.xls etc. ce qui permet
de les désigner par l'appellation générique Ref?.xls.
- Les numéros de production sont en colonne A à partir de A2.
Tu dois modifier le code pour tenir compte de ton environnement.

Private Sub CommandButton2_Click()
Dim Plage As Range, Var, Existe As Boolean
Dim Fichier As String
Const Chemin = "e:donneesdanielmpfetest" ' à modifier
Set Plage = Range("A2", Range("A65536").End(xlUp))
Var = CInt(Me.TextBox1.Value)
If IsNumeric(Application.Match(Var, Plage, 0)) Then
MsgBox "Ce numéro existe dans ce classeur"
Existe = True
End If
Fichier = Dir(Chemin & "Ref?.xls")
Do While Fichier <> ""
If Fichier <> ThisWorkbook.Name Then
Workbooks.Open Chemin & Fichier
Set Plage = Range("A2", Range("A65536").End(xlUp))
If IsNumeric(Application.Match(Var, Plage, 0)) Then
MsgBox "Ce numéro existe dans le classeur " & Fichier
Existe = True
End If
ActiveWorkbook.Close False
End If
Fichier = Dir
Loop
If Existe = False Then MsgBox "Ce numéro n'existe dans aucun fichier"
Unload Me
End Sub

"PJ" a écrit dans le message de news:

Bonjour à tous,

voilà, j'ai crée un petit fichier excel pour la gestion de mon stock. J'ai
étendu ce fichier à chaque reference soit 6 fichiers ayant la même base.
Seul
le nom diffère.
Voilà ce que je cherche à faire: lors de la saisie dans un useform, je
voudrais que sur le nombre que je viens d'entrer, soit fait un test
d'existance par rapport à chaque feuille "saisie" de mes 6 fichiers. En
gros,
je rentre un numéro de production et je voudrais voir si il n'existe pas
déjà
pour cette ref ou pour les 5 autres. L'historique de chaque opération
étant
dans la feuille "saisie" de chaque fichier.

Merci d'avance de votre aide et si ce n'est pas assez clair, je vous en
prie, lachez-vous et je reformulerai.
Merci encore et joyeux noel à tous.

PJ


Avatar
PJ
Décidément Daniel tu es vraiment au top!
Je renvoie un message dès que j'ai fini de tester.

Merci beaucoup.
PJ


Bonjour.
Regarde le classeur à l'adresse :
http://cjoint.com/?mwl07aPUKn
Le code suivant suppose que :
- les fichiers soient dans le même répertoire (dossier) défini par la
constante Chemin.
- Les fichiers sont nommés Ref1.xls, Ref2.xls, Ref3.xls etc. ce qui permet
de les désigner par l'appellation générique Ref?.xls.
- Les numéros de production sont en colonne A à partir de A2.
Tu dois modifier le code pour tenir compte de ton environnement.

Private Sub CommandButton2_Click()
Dim Plage As Range, Var, Existe As Boolean
Dim Fichier As String
Const Chemin = "e:donneesdanielmpfetest" ' à modifier
Set Plage = Range("A2", Range("A65536").End(xlUp))
Var = CInt(Me.TextBox1.Value)
If IsNumeric(Application.Match(Var, Plage, 0)) Then
MsgBox "Ce numéro existe dans ce classeur"
Existe = True
End If
Fichier = Dir(Chemin & "Ref?.xls")
Do While Fichier <> ""
If Fichier <> ThisWorkbook.Name Then
Workbooks.Open Chemin & Fichier
Set Plage = Range("A2", Range("A65536").End(xlUp))
If IsNumeric(Application.Match(Var, Plage, 0)) Then
MsgBox "Ce numéro existe dans le classeur " & Fichier
Existe = True
End If
ActiveWorkbook.Close False
End If
Fichier = Dir
Loop
If Existe = False Then MsgBox "Ce numéro n'existe dans aucun fichier"
Unload Me
End Sub

"PJ" a écrit dans le message de news:

Bonjour à tous,

voilà, j'ai crée un petit fichier excel pour la gestion de mon stock. J'ai
étendu ce fichier à chaque reference soit 6 fichiers ayant la même base.
Seul
le nom diffère.
Voilà ce que je cherche à faire: lors de la saisie dans un useform, je
voudrais que sur le nombre que je viens d'entrer, soit fait un test
d'existance par rapport à chaque feuille "saisie" de mes 6 fichiers. En
gros,
je rentre un numéro de production et je voudrais voir si il n'existe pas
déjà
pour cette ref ou pour les 5 autres. L'historique de chaque opération
étant
dans la feuille "saisie" de chaque fichier.

Merci d'avance de votre aide et si ce n'est pas assez clair, je vous en
prie, lachez-vous et je reformulerai.
Merci encore et joyeux noel à tous.

PJ







Avatar
Daniel
Soit il n'y a qu'eux dans le répertooire, auquel cas tu remplaces :
Fichier = Dir(Chemin & "Ref?.xls")
par
Fichier = Dir(Chemin & "*.xls")
Soit ils ne sont pas seuls, tu dois remplacer la boucle et recopier le code
5 fois.
Daniel
"PJ" a écrit dans le message de news:

Daniel,

ça a l'air de marcher (daprès mon test) mais comment faire si mes noms de
fichiers sont différents : toto, tata, titi... et dans le même rep? Faut
il
que je remplace le "while"?

Merci de ton aide
PJ


Bonjour.
Regarde le classeur à l'adresse :
http://cjoint.com/?mwl07aPUKn
Le code suivant suppose que :
- les fichiers soient dans le même répertoire (dossier) défini par la
constante Chemin.
- Les fichiers sont nommés Ref1.xls, Ref2.xls, Ref3.xls etc. ce qui
permet
de les désigner par l'appellation générique Ref?.xls.
- Les numéros de production sont en colonne A à partir de A2.
Tu dois modifier le code pour tenir compte de ton environnement.

Private Sub CommandButton2_Click()
Dim Plage As Range, Var, Existe As Boolean
Dim Fichier As String
Const Chemin = "e:donneesdanielmpfetest" ' à modifier
Set Plage = Range("A2", Range("A65536").End(xlUp))
Var = CInt(Me.TextBox1.Value)
If IsNumeric(Application.Match(Var, Plage, 0)) Then
MsgBox "Ce numéro existe dans ce classeur"
Existe = True
End If
Fichier = Dir(Chemin & "Ref?.xls")
Do While Fichier <> ""
If Fichier <> ThisWorkbook.Name Then
Workbooks.Open Chemin & Fichier
Set Plage = Range("A2", Range("A65536").End(xlUp))
If IsNumeric(Application.Match(Var, Plage, 0)) Then
MsgBox "Ce numéro existe dans le classeur " & Fichier
Existe = True
End If
ActiveWorkbook.Close False
End If
Fichier = Dir
Loop
If Existe = False Then MsgBox "Ce numéro n'existe dans aucun fichier"
Unload Me
End Sub

"PJ" a écrit dans le message de news:

Bonjour à tous,

voilà, j'ai crée un petit fichier excel pour la gestion de mon stock.
J'ai
étendu ce fichier à chaque reference soit 6 fichiers ayant la même
base.
Seul
le nom diffère.
Voilà ce que je cherche à faire: lors de la saisie dans un useform, je
voudrais que sur le nombre que je viens d'entrer, soit fait un test
d'existance par rapport à chaque feuille "saisie" de mes 6 fichiers. En
gros,
je rentre un numéro de production et je voudrais voir si il n'existe
pas
déjà
pour cette ref ou pour les 5 autres. L'historique de chaque opération
étant
dans la feuille "saisie" de chaque fichier.

Merci d'avance de votre aide et si ce n'est pas assez clair, je vous en
prie, lachez-vous et je reformulerai.
Merci encore et joyeux noel à tous.

PJ