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

recherche dans une autre feuille

16 réponses
Avatar
daniel
Bonjour,
Peut-être aurai-je plus de chance avec ce 2ème message.
Voici le code qui ne fonctionne pas et je ne sais pas pourquoi;

Private Sub Worksheet_Change(ByVal Target As Range)
Dim choix
If Intersect(Target, Range("D5")) Is Nothing Then Exit Sub
choix = Application.Match(Target.Value, Sheets("Résultats").Range("e1:e80"),
0)
ça bloque déjà là.

Et pour la suite, je patauge de plus belle, j'aimerais pouvoir copier les
cellules de plusieurs lignes de cette feuille vers la feuille active.

Merci à tous et bon week-end.
Daniel

10 réponses

1 2
Avatar
daniel
Suite...
choix = Application.Match(Target.Value,
Worksheets("Résultats").Range("a1:a80"), 0)
qui marche, mais pour copier, rien...
Y'a t'il un des cracks qui pourrait se pencher sur mon problème...
Ou il y a un blème ????
Avatar
Daniel
Bonjour.
Si ta fonction "match" est OK, que ceux-tu copier, d'où et vers où ?
Cordialement.
daniel
"daniel" a écrit dans le message de news:

Suite...
choix = Application.Match(Target.Value,
Worksheets("Résultats").Range("a1:a80"), 0)
qui marche, mais pour copier, rien...
Y'a t'il un des cracks qui pourrait se pencher sur mon problème...
Ou il y a un blème ????



Avatar
Ardus Petus
J'ai remplacé Target par Range("D5") pour le Match, ce qui est plus logique
en cas de multi-sélect.


Sub test()
Worksheet_Change Range("D1:D7")
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
Dim choix As Long
If Intersect(Target, Range("D5")) Is Nothing Then Exit Sub
With Range("D5")
If .Value <> "" Then
choix = Application.WorksheetFunction.Match( _
.Value, _
Worksheets("Résultats").Range("e1:e80"), _
0)
End If
End With
End Sub


"daniel" a écrit dans le message de
news:
Suite...
choix = Application.Match(Target.Value,
Worksheets("Résultats").Range("a1:a80"), 0)
qui marche, mais pour copier, rien...
Y'a t'il un des cracks qui pourrait se pencher sur mon problème...
Ou il y a un blème ????




Avatar
daniel
Bonjour,
Ardus Petus, la recherche marchait, mais merci pour le tuyau.
Daniel,
Je souhaite, à partir de la cellule trouver dans l'onglet résultats, copier
n lignes sur n colonnes (aléatoires).
avec ce code, ça marche pour 1 cellule
Range("a47") = Worksheets("Résultats").Range("a" & choix)
mais je n'arrive pas à copier un nombre de cellules fixe vers un endroit
d'une "feuill1", alors le nombre de cellules aléatoire, j'en suis loin.
Merci de votre intervention.
Daniel

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

Bonjour.
Si ta fonction "match" est OK, que ceux-tu copier, d'où et vers où ?
Cordialement.
daniel
"daniel" a écrit dans le message de news:

Suite...
choix = Application.Match(Target.Value,
Worksheets("Résultats").Range("a1:a80"), 0)
qui marche, mais pour copier, rien...
Y'a t'il un des cracks qui pourrait se pencher sur mon problème...
Ou il y a un blème ????







Avatar
Youky
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$D$5" Then Exit Sub
If Target.Value = "" Then Exit Sub
lg = Feuil1.[A65536].End(3).Row + 1
For lig = 1 To 80
If Feuil2.Cells(lig, 5) = Target.Value Then
Feuil1.Range("A" & lg & ":Z" & lg).Value = Feuil2.Range("A" & lig & ":Z" &
lig).Value
lg = lg + 1
End If
Next
'Feuil2 étant onglet Résultats
End Sub

sans trop savoir ce que tu veux copier
cela devrait d'aider
Youky
"daniel" a écrit dans le message de news:
e22V%
Bonjour,
Ardus Petus, la recherche marchait, mais merci pour le tuyau.
Daniel,
Je souhaite, à partir de la cellule trouver dans l'onglet résultats,
copier n lignes sur n colonnes (aléatoires).
avec ce code, ça marche pour 1 cellule
Range("a47") = Worksheets("Résultats").Range("a" & choix)
mais je n'arrive pas à copier un nombre de cellules fixe vers un endroit
d'une "feuill1", alors le nombre de cellules aléatoire, j'en suis loin.
Merci de votre intervention.
Daniel

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

Bonjour.
Si ta fonction "match" est OK, que ceux-tu copier, d'où et vers où ?
Cordialement.
daniel
"daniel" a écrit dans le message de news:

Suite...
choix = Application.Match(Target.Value,
Worksheets("Résultats").Range("a1:a80"), 0)
qui marche, mais pour copier, rien...
Y'a t'il un des cracks qui pourrait se pencher sur mon problème...
Ou il y a un blème ????











Avatar
Youky
je n'avais pas vu ton post précédent
cela va mieux.....
copie en feuil1 les données de feuil2 à partir de listbox1 de feuil3
ici A:Z , lignes en fonction de selected
Private Sub CommandButton1_Click()
lg = Feuil1.[A65536].End(3).Row + 1
For i = 1 To Feuil3.ListBox1.ListCount
If Feuil3.ListBox1.Selected(i - 1) = True Then
Feuil1.Range("A" & lg & ":Z" & lg).Value = Feuil2.Range("A" & i & ":Z" &
i).Value
lg = lg + 1
End If
Next
'déselection
For i = 0 To Feuil3.ListBox1.ListCount - 1
Feuil3.ListBox1.Selected(i) = False
Next
End Sub

Youky
Avatar
daniel
Bonjour à tous et merci,
Youki est le seul à avoir su décrypter le message secret qu'était le mien,
et encore il n'y croyait pas à la fin.
Je vais faire des efforts dans la rédaction de mes demandes, ça s'impose !!!

Youky
C'est ton 1er message qui me va très bien et qui fonctionne super (le fait
d'indiquer feuiln° évite d'écrire worksheet("Résultats"), c'est bien ça ??.

Pour le 2ème, je ne comprend pas pourquoi listbox ??, il est vrai queje
manque de clarté dans mes demandes, mais une petite question, on s'en sert
dans le cas d'une liste modifiable et d'une liste de texte ?

Enfin merci à tous pour votre patience et votre disponibilité.
A+.



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

je n'avais pas vu ton post précédent
cela va mieux.....
copie en feuil1 les données de feuil2 à partir de listbox1 de feuil3
ici A:Z , lignes en fonction de selected
Private Sub CommandButton1_Click()
lg = Feuil1.[A65536].End(3).Row + 1
For i = 1 To Feuil3.ListBox1.ListCount
If Feuil3.ListBox1.Selected(i - 1) = True Then
Feuil1.Range("A" & lg & ":Z" & lg).Value = Feuil2.Range("A" & i & ":Z" &
i).Value
lg = lg + 1
End If
Next
'déselection
For i = 0 To Feuil3.ListBox1.ListCount - 1
Feuil3.ListBox1.Selected(i) = False
Next
End Sub

Youky



Avatar
daniel
Re,
J'ai voulu essayer de compléter la macro, mais forcément ça plante.
Comme indiqué dans un de mes nombreux messages, je souhaitais obtenir n
lignes, sur n colonnes.
j'ai donc tenté

Private Sub Worksheet_Change(ByVal Target As Range)
Dim lig
Dim col As Range
Dim lg
Dim i

If Target.Address <> "$D$5" Then Exit Sub
If Target.Value = "" Then Exit Sub
lg = Feuil1.[A65536].End(3).Row + 1
For lig = 1 To 80
If Feuil2.Cells(lig, 1) = Target.Value Then

If Feuil2.Cells(lig, 1) = Target.Value Then
col = Feuil2.[IV &lg].End(1).Column 'Rajout mais ne peut le lire
'si c'est un chiffre lit bien mais ressort n° colonne et non la lettre

Feuil1.Range("A" & lg & ":" & col).Value = Feuil2.Range("A" & _
lig & ":" & col).Value ' et donc là ça plante
lg = lg + 1

End If
Next

Pouvez-vous, encore, jeter un coup d'oeil.
Encore merci et bonne journée.
Daniel(novice)
Avatar
Youky
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lig
Dim col As Range
Dim lg
Dim i

If Target.Address <> "$D$5" Then Exit Sub
If Target.Value = "" Then Exit Sub
lg = Feuil1.[A65536].End(3).Row + 1
For lig = 1 To 80
If Feuil2.Cells(lig, 1) = Target.Value Then

If Feuil2.Cells(lig, 1) = Target.Value Then
col = Feuil2.[IV &lg].End(1).Column
'col est un chiffre
For k=1 To col
Feuil1.Cells(lg,col) = Feuil2.Cells(lig,col)
Next
lg = lg + 1

End If
Next

Pour Feuil2 ou Feuil1 plus facile d'emploi car si qlq'un renomme les onglets
ça plante
Ce nom de feuil apparait en fenetre Projet à gauche
exemple: Feuil2...(Résultats)
tu peux encore changer ce Feuil2 en affichant les propiétées de Feuil2 et
l'appeler Résultats
2eme question ....j'avais cru comprendre que tu utilisais une listbox en
multiselection
Youky
"daniel" a écrit dans le message de news:
%
Re,
J'ai voulu essayer de compléter la macro, mais forcément ça plante.
Comme indiqué dans un de mes nombreux messages, je souhaitais obtenir n
lignes, sur n colonnes.
j'ai donc tenté

Private Sub Worksheet_Change(ByVal Target As Range)
Dim lig
Dim col As Range
Dim lg
Dim i

If Target.Address <> "$D$5" Then Exit Sub
If Target.Value = "" Then Exit Sub
lg = Feuil1.[A65536].End(3).Row + 1
For lig = 1 To 80
If Feuil2.Cells(lig, 1) = Target.Value Then

If Feuil2.Cells(lig, 1) = Target.Value Then
col = Feuil2.[IV &lg].End(1).Column 'Rajout mais ne peut le lire
'si c'est un chiffre lit bien mais ressort n° colonne et non la lettre

Feuil1.Range("A" & lg & ":" & col).Value = Feuil2.Range("A" & _
lig & ":" & col).Value ' et donc là ça plante
lg = lg + 1

End If
Next

Pouvez-vous, encore, jeter un coup d'oeil.
Encore merci et bonne journée.
Daniel(novice)



Avatar
Youky
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lig as Integer, col As Integer, lg As Integer
If Target.Address <> "$D$5" Then Exit Sub
If Target.Value = "" Then Exit Sub
lg = Feuil1.[A65536].End(3).Row + 1
For lig = 1 To 80
If Feuil2.Cells(lig, 1) = Target.Value Then
col = Feuil2.[IV &lg].End(1).Column
For k=1 To col
Feuil1.Cells(lg,k) = Feuil2.Cells(lig,k)
Next k
lg = lg + 1
End If
Next lig
End Sub
mon copier collé précédent laisse à désirer
là ça doit faire le joint
Youky
"daniel" a écrit dans le message de news:
%
Re,
J'ai voulu essayer de compléter la macro, mais forcément ça plante.
Comme indiqué dans un de mes nombreux messages, je souhaitais obtenir n
lignes, sur n colonnes.
j'ai donc tenté

Private Sub Worksheet_Change(ByVal Target As Range)
Dim lig
Dim col As Range
Dim lg
Dim i

If Target.Address <> "$D$5" Then Exit Sub
If Target.Value = "" Then Exit Sub
lg = Feuil1.[A65536].End(3).Row + 1
For lig = 1 To 80
If Feuil2.Cells(lig, 1) = Target.Value Then

If Feuil2.Cells(lig, 1) = Target.Value Then
col = Feuil2.[IV &lg].End(1).Column 'Rajout mais ne peut le lire
'si c'est un chiffre lit bien mais ressort n° colonne et non la lettre

Feuil1.Range("A" & lg & ":" & col).Value = Feuil2.Range("A" & _
lig & ":" & col).Value ' et donc là ça plante
lg = lg + 1

End If
Next

Pouvez-vous, encore, jeter un coup d'oeil.
Encore merci et bonne journée.
Daniel(novice)



1 2