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

Recherche par VBA

25 réponses
Avatar
Guy85
Bonjour,
En colonne "D" j'ai des textes.
Suivant le texte, je souhaiterais ajouter un texte en colonne "E" à la suite
du texte de la colonne "D".
Avoir la possibilité de changer de texte.
Exemple : D1=Ananas en E1=Fruits.
Exemple : D1=Tomate en E1=Légumes.
etc.................
Possible ?
Merci de votre aide
Cordialement
Guy
--
Cordialement
Guy

10 réponses

1 2 3
Avatar
Guy85
Bonjour Daniel,
Non pas dans le fichier d'exemple, c'est un exemple.
Parc contre dans le fichier original, j'ai 3000 lignes, dans une autre
feuille avec les recettes et leur image.
Cordialement
Guy

"Daniel.C" a écrit dans le message de news:
%23V$
Tu as plusieurs fois le mmot "ananas" en colonne D ?
Daniel

Ça fonctionne.
Je pensais suivant le texte (Ananas) en colonne D le nom type (Fruits) se
mettrait automatiquement en (colonne E) face à de tous les mots "Ananas"
etc.....
Cordialement
Guy

"Daniel.C" a écrit dans le message de news:

Ca fonctionne chez moi, SAUF quand tu fermes la forme manuellement. J'ai
amélioré :
http://www.cijoint.fr/cjlink.php?file=cj201003/cijGoj8oQI.xls
(Groupe Daniel 3.xls)
Daniel

re
Je vois le Userform mais rein dedans.
Guy

"Daniel.C" a écrit dans le message de news:
%
Re.
Regarde le fichier à l'adresse :
http://www.cijoint.fr/cjlink.php?file=cj201003/cijw81Q9gW.xls
(Groupe Daniel 3.xls)
J'ai ajouté un userform avec une listbox qui se remplit à l'ouverture
du classeur. Quand tu cliques en colonne E, l'userform s'affiche.
Clique sur ton choix. Celui-ci s'affiche sur la feuille.
Daniel

Bonjour,
En colonne "D" j'ai des textes.
Suivant le texte, je souhaiterais ajouter un texte en colonne "E" à
la suite du texte de la colonne "D".
Avoir la possibilité de changer de texte.
Exemple : D1=Ananas en E1=Fruits.
Exemple : D1=Tomate en E1=Légumes.
etc.................
Possible ?
Merci de votre aide
Cordialement
Guy
















Avatar
Guy85
Bonjour F,
J'ai fais des tests, mais ça ne fonctionne pas, j'ai le mot "Cells" (qui est
surligné en jaune) à la ligne 19 de la macro "recherche2".Avec le message
suivant : "Référence incorrecte ou non qualifiée"
J'ai bien mis les noms "bdd" et "mesRecettes"
J'ai mis le code : Function InverseTab...............etc en Feuil1 (est-ce
là ?).
Cordialement
Guy

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

Salut,

Voilà une solution :

Sub recherche2()
Dim tmp()
Dim mesTypes()
Dim mesRecettes()
Dim x As Double
Dim dicoType As Object
On Error GoTo err_handler
mesTypes = Range("bdd")
mesRecettes = Range("mesRecettes")
ReDim tmp(1 To 2, 1 To UBound(mesRecettes))
Set dicoTypes = CreateObject("Scripting.Dictionary")
For x = 1 To UBound(mesTypes)
dicoTypes.Item(mesTypes(x, 1)) = mesTypes(x, 2)
Next x
For x = 1 To UBound(mesRecettes)
tmp(1, x) = mesRecettes(x, 1)
tmp(2, x) = dicoTypes.Item(mesRecettes(x, 1))
Next
With Feuil1
.Range(.Cells(1, 4), .Cells(UBound(tmp, 2), 5)).Value Application.Transpose(tmp)
End With
On Error GoTo 0
Exit Sub
err_handler:
MsgBox "Erreur"
End Sub

Elle part sur deux postulats :
Il existe deux nom :
- "bdd" dont la formule est ÞCALER(Types!$A$1;;;NBVAL(Types!$A:
$A);2)
- "mesRecettes" dont la formule est ÞCALER(Recettes!$D
$1;;;NBVAL(Recettes!$D:$D)+NBVAL(Recettes!$A:$A)-1)

Pour mesRecettes, je me suis basé sur le contenu de la feuille Recette

L'utilisation d'un objet Dictionary permet de diviser le temps de
traitement considérablement (par rapport à une boucle)

J'ai fait un test sur 65535 ingrédient et 65535 recettes, avec le
Dictionary cela prend 10 secondes, avec des boucles..... cela fait 3
minutes 15 et 30000 lignes ont été traitées !

Par contre, si tu des volumes trop important, il faut faire attention
(avec Excel, au moins jusqu'à 2000), le Application.transpose est
limité à quelques milliers de ligne (maxi 5000 puisqu'à 5000 ca
plante), donc il faut passer par une fonction :

Function InverseTab(T, Optional Base As Byte = 0)'Zon
‘Base par défaut est à 0 mais si on est en base 1 lui donnner la
valeur 1
Dim Temp(), I&, J&
ReDim Temp(Base To UBound(T, 2), Base To UBound(T))
For I = LBound(T, 2) To UBound(T, 2)
For J = LBound(T) To UBound(T)
Temp(I, J) = T(J, I)
Next J
Next I
InverseTab = Temp
End Function


Cordialement,

F.
Avatar
Guy85
Bonjour FFO,
J'avoue que je ne sais pas quoi faire de ces lignes.
J'ai mis ça avec le nom d'une macro "Sub recherche".
Mais je suppose que ce n'est pas ça qu'il faut faire ?
Cordialement
Guy

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

Salut à toi

Ces lignes devraient convenir :

i = 2
Ligne = 0
Do While i < Range("A65535").End(xlUp).Row + 1
On Error Resume Next
Ligne = Sheets("Feuil2").Columns("A:A").Find(What:=Range("A" & i),
After:=Sheets("Feuil2").Range("A1"), LookIn:=xlValues,
LookAt:=xlWhole).Row
If Ligne <> 0 Then
Range("B" & i) = Sheets("Feuil2").Range("B" & Ligne)
Ligne = 0
End If
i = i + 1
Loop

Attention :

Ligne = Sheets("Feuil2").Columns("A:A").Find(What:=Range("A" & i),
After:=Sheets("Feuil2").Range("A1"), LookIn:=xlValues,
LookAt:=xlWhole).Row

a mettre bout à bout sur une seule ligne

Actualises "Feuil2" du nom de la feuille de référence listant tous les
articles avec leur catégorie associée

Exécutes la macro avec la feuille à mettre à jour active


Fais des essais et dis moi !!!!!

Avatar
Daniel.C
Bonjour Guy.
Regarde le classeur :
http://www.cijoint.fr/cjlink.php?file=cj201003/cijtSkfZJO.xls
(Groupe Daniel 3.xls)
Clique sur un aliment, choisis le type dans la liste. Celui-ci est
reporté en face de chaque occurence de l'aliment choisi.
Cordialement.
Daniel


Bonjour Daniel,
Non pas dans le fichier d'exemple, c'est un exemple.
Parc contre dans le fichier original, j'ai 3000 lignes, dans une autre
feuille avec les recettes et leur image.
Cordialement
Guy

"Daniel.C" a écrit dans le message de news:
%23V$
Tu as plusieurs fois le mmot "ananas" en colonne D ?
Daniel

Ça fonctionne.
Je pensais suivant le texte (Ananas) en colonne D le nom type (Fruits) se
mettrait automatiquement en (colonne E) face à de tous les mots "Ananas"
etc.....
Cordialement
Guy

"Daniel.C" a écrit dans le message de news:

Ca fonctionne chez moi, SAUF quand tu fermes la forme manuellement. J'ai
amélioré :
http://www.cijoint.fr/cjlink.php?file=cj201003/cijGoj8oQI.xls
(Groupe Daniel 3.xls)
Daniel

re
Je vois le Userform mais rein dedans.
Guy

"Daniel.C" a écrit dans le message de news:
%
Re.
Regarde le fichier à l'adresse :
http://www.cijoint.fr/cjlink.php?file=cj201003/cijw81Q9gW.xls
(Groupe Daniel 3.xls)
J'ai ajouté un userform avec une listbox qui se remplit à l'ouverture
du classeur. Quand tu cliques en colonne E, l'userform s'affiche.
Clique sur ton choix. Celui-ci s'affiche sur la feuille.
Daniel

Bonjour,
En colonne "D" j'ai des textes.
Suivant le texte, je souhaiterais ajouter un texte en colonne "E" à la
suite du texte de la colonne "D".
Avoir la possibilité de changer de texte.
Exemple : D1=Ananas en E1=Fruits.
Exemple : D1=Tomate en E1=Légumes.
etc.................
Possible ?
Merci de votre aide
Cordialement
Guy
















Avatar
Guy85
Bonjour Daniel,
Oui...oui, c'est excellent.
J'ai pas encore fais l'essai dans l'original, mais j'avais un problème avec
l'ancien version.
Quand je voulais travailler sur ma feuille , quand je clic ailleurs que la
colonne "E" j'ai une fenêtre et un message qui apparaît :
"Erreur 1004...Erreur définie par l'application ou par l'objet.
Et je suis obligé de cliquer sur fin pour pouvoir container.
Vois-tu ce qu'il peut y avoir ?
Merci de ton aide
Guy

"Daniel.C" a écrit dans le message de news:

Bonjour Guy.
Regarde le classeur :
http://www.cijoint.fr/cjlink.php?file=cj201003/cijtSkfZJO.xls
(Groupe Daniel 3.xls)
Clique sur un aliment, choisis le type dans la liste. Celui-ci est reporté
en face de chaque occurence de l'aliment choisi.
Cordialement.
Daniel


Bonjour Daniel,
Non pas dans le fichier d'exemple, c'est un exemple.
Parc contre dans le fichier original, j'ai 3000 lignes, dans une autre
feuille avec les recettes et leur image.
Cordialement
Guy

"Daniel.C" a écrit dans le message de news:
%23V$
Tu as plusieurs fois le mmot "ananas" en colonne D ?
Daniel

Ça fonctionne.
Je pensais suivant le texte (Ananas) en colonne D le nom type (Fruits)
se mettrait automatiquement en (colonne E) face à de tous les mots
"Ananas" etc.....
Cordialement
Guy

"Daniel.C" a écrit dans le message de news:

Ca fonctionne chez moi, SAUF quand tu fermes la forme manuellement.
J'ai amélioré :
http://www.cijoint.fr/cjlink.php?file=cj201003/cijGoj8oQI.xls
(Groupe Daniel 3.xls)
Daniel

re
Je vois le Userform mais rein dedans.
Guy

"Daniel.C" a écrit dans le message de
news: %
Re.
Regarde le fichier à l'adresse :
http://www.cijoint.fr/cjlink.php?file=cj201003/cijw81Q9gW.xls
(Groupe Daniel 3.xls)
J'ai ajouté un userform avec une listbox qui se remplit à
l'ouverture du classeur. Quand tu cliques en colonne E, l'userform
s'affiche. Clique sur ton choix. Celui-ci s'affiche sur la feuille.
Daniel

Bonjour,
En colonne "D" j'ai des textes.
Suivant le texte, je souhaiterais ajouter un texte en colonne "E" à
la suite du texte de la colonne "D".
Avoir la possibilité de changer de texte.
Exemple : D1=Ananas en E1=Fruits.
Exemple : D1=Tomate en E1=Légumes.
etc.................
Possible ?
Merci de votre aide
Cordialement
Guy






















Avatar
Daniel.C
De quelle ancienne version parles-tu ?
Daniel

Bonjour Daniel,
Oui...oui, c'est excellent.
J'ai pas encore fais l'essai dans l'original, mais j'avais un problème avec
l'ancien version.
Quand je voulais travailler sur ma feuille , quand je clic ailleurs que la
colonne "E" j'ai une fenêtre et un message qui apparaît :
"Erreur 1004...Erreur définie par l'application ou par l'objet.
Et je suis obligé de cliquer sur fin pour pouvoir container.
Vois-tu ce qu'il peut y avoir ?
Merci de ton aide
Guy

"Daniel.C" a écrit dans le message de news:

Bonjour Guy.
Regarde le classeur :
http://www.cijoint.fr/cjlink.php?file=cj201003/cijtSkfZJO.xls
(Groupe Daniel 3.xls)
Clique sur un aliment, choisis le type dans la liste. Celui-ci est reporté
en face de chaque occurence de l'aliment choisi.
Cordialement.
Daniel


Bonjour Daniel,
Non pas dans le fichier d'exemple, c'est un exemple.
Parc contre dans le fichier original, j'ai 3000 lignes, dans une autre
feuille avec les recettes et leur image.
Cordialement
Guy

"Daniel.C" a écrit dans le message de news:
%23V$
Tu as plusieurs fois le mmot "ananas" en colonne D ?
Daniel

Ça fonctionne.
Je pensais suivant le texte (Ananas) en colonne D le nom type (Fruits)
se mettrait automatiquement en (colonne E) face à de tous les mots
"Ananas" etc.....
Cordialement
Guy

"Daniel.C" a écrit dans le message de news:

Ca fonctionne chez moi, SAUF quand tu fermes la forme manuellement.
J'ai amélioré :
http://www.cijoint.fr/cjlink.php?file=cj201003/cijGoj8oQI.xls
(Groupe Daniel 3.xls)
Daniel

re
Je vois le Userform mais rein dedans.
Guy

"Daniel.C" a écrit dans le message de news:
%
Re.
Regarde le fichier à l'adresse :
http://www.cijoint.fr/cjlink.php?file=cj201003/cijw81Q9gW.xls
(Groupe Daniel 3.xls)
J'ai ajouté un userform avec une listbox qui se remplit à l'ouverture
du classeur. Quand tu cliques en colonne E, l'userform s'affiche.
Clique sur ton choix. Celui-ci s'affiche sur la feuille.
Daniel

Bonjour,
En colonne "D" j'ai des textes.
Suivant le texte, je souhaiterais ajouter un texte en colonne "E" à
la suite du texte de la colonne "D".
Avoir la possibilité de changer de texte.
Exemple : D1=Ananas en E1=Fruits.
Exemple : D1=Tomate en E1=Légumes.
etc.................
Possible ?
Merci de votre aide
Cordialement
Guy






















Avatar
Guy85
La 1ère que tu avais fait.
Message 19/03 à 11:43.
Cela se passe surtout quand je sélectionne au moins 2 cellules en même
temps.

"Daniel.C" a écrit dans le message de news:
uVpK%
De quelle ancienne version parles-tu ?
Daniel

Bonjour Daniel,
Oui...oui, c'est excellent.
J'ai pas encore fais l'essai dans l'original, mais j'avais un problème
avec l'ancien version.
Quand je voulais travailler sur ma feuille , quand je clic ailleurs que
la colonne "E" j'ai une fenêtre et un message qui apparaît :
"Erreur 1004...Erreur définie par l'application ou par l'objet.
Et je suis obligé de cliquer sur fin pour pouvoir container.
Vois-tu ce qu'il peut y avoir ?
Merci de ton aide
Guy

"Daniel.C" a écrit dans le message de news:

Bonjour Guy.
Regarde le classeur :
http://www.cijoint.fr/cjlink.php?file=cj201003/cijtSkfZJO.xls
(Groupe Daniel 3.xls)
Clique sur un aliment, choisis le type dans la liste. Celui-ci est
reporté en face de chaque occurence de l'aliment choisi.
Cordialement.
Daniel


Bonjour Daniel,
Non pas dans le fichier d'exemple, c'est un exemple.
Parc contre dans le fichier original, j'ai 3000 lignes, dans une autre
feuille avec les recettes et leur image.
Cordialement
Guy

"Daniel.C" a écrit dans le message de news:
%23V$
Tu as plusieurs fois le mmot "ananas" en colonne D ?
Daniel

Ça fonctionne.
Je pensais suivant le texte (Ananas) en colonne D le nom type
(Fruits) se mettrait automatiquement en (colonne E) face à de tous
les mots "Ananas" etc.....
Cordialement
Guy

"Daniel.C" a écrit dans le message de
news:
Ca fonctionne chez moi, SAUF quand tu fermes la forme manuellement.
J'ai amélioré :
http://www.cijoint.fr/cjlink.php?file=cj201003/cijGoj8oQI.xls
(Groupe Daniel 3.xls)
Daniel

re
Je vois le Userform mais rein dedans.
Guy

"Daniel.C" a écrit dans le message de
news: %
Re.
Regarde le fichier à l'adresse :
http://www.cijoint.fr/cjlink.php?file=cj201003/cijw81Q9gW.xls
(Groupe Daniel 3.xls)
J'ai ajouté un userform avec une listbox qui se remplit à
l'ouverture du classeur. Quand tu cliques en colonne E, l'userform
s'affiche. Clique sur ton choix. Celui-ci s'affiche sur la
feuille.
Daniel

Bonjour,
En colonne "D" j'ai des textes.
Suivant le texte, je souhaiterais ajouter un texte en colonne "E"
à la suite du texte de la colonne "D".
Avoir la possibilité de changer de texte.
Exemple : D1=Ananas en E1=Fruits.
Exemple : D1=Tomate en E1=Légumes.
etc.................
Possible ?
Merci de votre aide
Cordialement
Guy




























Avatar
Daniel.C
C'est réglé avec le nouvel envoi
Daniel

La 1ère que tu avais fait.
Message 19/03 à 11:43.
Cela se passe surtout quand je sélectionne au moins 2 cellules en même temps.

"Daniel.C" a écrit dans le message de news:
uVpK%
De quelle ancienne version parles-tu ?
Daniel

Bonjour Daniel,
Oui...oui, c'est excellent.
J'ai pas encore fais l'essai dans l'original, mais j'avais un problème
avec l'ancien version.
Quand je voulais travailler sur ma feuille , quand je clic ailleurs que la
colonne "E" j'ai une fenêtre et un message qui apparaît :
"Erreur 1004...Erreur définie par l'application ou par l'objet.
Et je suis obligé de cliquer sur fin pour pouvoir container.
Vois-tu ce qu'il peut y avoir ?
Merci de ton aide
Guy

"Daniel.C" a écrit dans le message de news:

Bonjour Guy.
Regarde le classeur :
http://www.cijoint.fr/cjlink.php?file=cj201003/cijtSkfZJO.xls
(Groupe Daniel 3.xls)
Clique sur un aliment, choisis le type dans la liste. Celui-ci est
reporté en face de chaque occurence de l'aliment choisi.
Cordialement.
Daniel


Bonjour Daniel,
Non pas dans le fichier d'exemple, c'est un exemple.
Parc contre dans le fichier original, j'ai 3000 lignes, dans une autre
feuille avec les recettes et leur image.
Cordialement
Guy

"Daniel.C" a écrit dans le message de news:
%23V$
Tu as plusieurs fois le mmot "ananas" en colonne D ?
Daniel

Ça fonctionne.
Je pensais suivant le texte (Ananas) en colonne D le nom type (Fruits)
se mettrait automatiquement en (colonne E) face à de tous les mots
"Ananas" etc.....
Cordialement
Guy

"Daniel.C" a écrit dans le message de news:

Ca fonctionne chez moi, SAUF quand tu fermes la forme manuellement.
J'ai amélioré :
http://www.cijoint.fr/cjlink.php?file=cj201003/cijGoj8oQI.xls
(Groupe Daniel 3.xls)
Daniel

re
Je vois le Userform mais rein dedans.
Guy

"Daniel.C" a écrit dans le message de
news: %
Re.
Regarde le fichier à l'adresse :
http://www.cijoint.fr/cjlink.php?file=cj201003/cijw81Q9gW.xls
(Groupe Daniel 3.xls)
J'ai ajouté un userform avec une listbox qui se remplit à
l'ouverture du classeur. Quand tu cliques en colonne E, l'userform
s'affiche. Clique sur ton choix. Celui-ci s'affiche sur la feuille.
Daniel

Bonjour,
En colonne "D" j'ai des textes.
Suivant le texte, je souhaiterais ajouter un texte en colonne "E"
à la suite du texte de la colonne "D".
Avoir la possibilité de changer de texte.
Exemple : D1=Ananas en E1=Fruits.
Exemple : D1=Tomate en E1=Légumes.
etc.................
Possible ?
Merci de votre aide
Cordialement
Guy




























Avatar
FdeCourt
Salut,

Nop tu peux tout mettre dans le même module.

Cordialement,

F.
Avatar
Guy85
Bonjour,
Par contre, je souhaiterais savoir quand même quoi modifier pour ne pas
avoir ce problème avec la 1ère version.
Car les deux versions me plaisent et je voudrais les garder pour des
fichiers ultérieurs.
Cordialement
Guy

"Daniel.C" a écrit dans le message de news:
O$%
C'est réglé avec le nouvel envoi
Daniel

La 1ère que tu avais fait.
Message 19/03 à 11:43.
Cela se passe surtout quand je sélectionne au moins 2 cellules en même
temps.

"Daniel.C" a écrit dans le message de news:
uVpK%
De quelle ancienne version parles-tu ?
Daniel

Bonjour Daniel,
Oui...oui, c'est excellent.
J'ai pas encore fais l'essai dans l'original, mais j'avais un problème
avec l'ancien version.
Quand je voulais travailler sur ma feuille , quand je clic ailleurs que
la colonne "E" j'ai une fenêtre et un message qui apparaît :
"Erreur 1004...Erreur définie par l'application ou par l'objet.
Et je suis obligé de cliquer sur fin pour pouvoir container.
Vois-tu ce qu'il peut y avoir ?
Merci de ton aide
Guy

"Daniel.C" a écrit dans le message de news:

Bonjour Guy.
Regarde le classeur :
http://www.cijoint.fr/cjlink.php?file=cj201003/cijtSkfZJO.xls
(Groupe Daniel 3.xls)
Clique sur un aliment, choisis le type dans la liste. Celui-ci est
reporté en face de chaque occurence de l'aliment choisi.
Cordialement.
Daniel


Bonjour Daniel,
Non pas dans le fichier d'exemple, c'est un exemple.
Parc contre dans le fichier original, j'ai 3000 lignes, dans une
autre feuille avec les recettes et leur image.
Cordialement
Guy

"Daniel.C" a écrit dans le message de
news: %23V$
Tu as plusieurs fois le mmot "ananas" en colonne D ?
Daniel

Ça fonctionne.
Je pensais suivant le texte (Ananas) en colonne D le nom type
(Fruits) se mettrait automatiquement en (colonne E) face à de tous
les mots "Ananas" etc.....
Cordialement
Guy

"Daniel.C" a écrit dans le message de
news:
Ca fonctionne chez moi, SAUF quand tu fermes la forme
manuellement. J'ai amélioré :
http://www.cijoint.fr/cjlink.php?file=cj201003/cijGoj8oQI.xls
(Groupe Daniel 3.xls)
Daniel

re
Je vois le Userform mais rein dedans.
Guy

"Daniel.C" a écrit dans le message de
news: %
Re.
Regarde le fichier à l'adresse :
http://www.cijoint.fr/cjlink.php?file=cj201003/cijw81Q9gW.xls
(Groupe Daniel 3.xls)
J'ai ajouté un userform avec une listbox qui se remplit à
l'ouverture du classeur. Quand tu cliques en colonne E,
l'userform s'affiche. Clique sur ton choix. Celui-ci s'affiche
sur la feuille.
Daniel

Bonjour,
En colonne "D" j'ai des textes.
Suivant le texte, je souhaiterais ajouter un texte en colonne
"E" à la suite du texte de la colonne "D".
Avoir la possibilité de changer de texte.
Exemple : D1=Ananas en E1=Fruits.
Exemple : D1=Tomate en E1=Légumes.
etc.................
Possible ?
Merci de votre aide
Cordialement
Guy


































1 2 3