XL 2016 Recherche ligne par ligne

  • Initiateur de la discussion Initiateur de la discussion Lucko
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

L

Lucko

Guest
Bonjour,

Voilà mon problème. J'ai 60 lignes (de E18 à E77). Chaque ligne contient 12 numéros. Je veux copier une à la suite de l'autre les 60 lignes sur la rangée E8😛8 afin de pouvoir les comparer à un autre numéro. En utilisant la fonction enregistrement, j'ai obtenu ce code. Lorsque j'arrête, je peux pouvoir recommencer non pas au début de la ligne mais à la ligne suivant l'arrêt. Comme je suis nul en macro, est-ce que l'on peut réduire ce code à quelques lignes? Merci

Sub Rechercheligneparligne()

Range("E18😛18").Select
Selection.Copy
Range("E8").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("E19😛19").Select
Application.CutCopyMode = False
Selection.Copy
Range("E8").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("E20😛20").Select
Application.CutCopyMode = False
Selection.Copy
Range("E8").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("E21😛21").Select
Application.CutCopyMode = False
Selection.Copy
Range("E8").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False


Range("R8").Select
End Sub
 
J'ai oublié d'inclure le fichier en question. Peut-on, aussi, à partir du modèle fourni ci-joint mettre des critères. Par exemple, loop until... tel numéro corresponde à tel autre ou que la somme d'une ligne égale telle ligne ou qu'un cycle de recherche soit atteint.
 

Pièces jointes

Bonjour,
Pour réduire le code et intégrer une pause de 5 secondes à chaque ligne

Sub Macro2()
For i = 18 To 77
Range("E" & i & "😛" & i).Select
Application.CutCopyMode = False
Selection.Copy
Range("E8").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
' Attendre 5 secondes
Application.Wait Time + TimeSerial(0, 0, 5)
' Continuer après la pause
Next i

End Sub


a+
 
Bonjour Chalet35,

J'aime l'idée. Toutefois, on dirait que la fonction saute parfois de une à deux lignes. Cela dit, je ne vais pas m'en plaindre puisque cette macro correspond à mes attentes. Après une pause volontaire avec ESC, peut-on reprendre là où on s'est arrêté? Merci.
 
Bonjour à tous,

Merci d'utiliser la mise en page prévue pour les codes :

upload_2016-9-10_16-7-39.png

upload_2016-9-10_16-8-10.png


a++
 
Bonsoir Lucko, CHALET53, JCGL,

Un essai avec défilement qu'on peut stopper puis reprendre. La durée de l'intervalle entre deux affichages est définie par une constante nommée Tempo en début du code au sein de module1. Le code est un peu commenté.

Il y a aussi deux instructions dans la procédure évènementielle Private Sub Workbook_Open() au sein du module de ThisWorkbook.

à noter: le bouton a été renommé "Bouton".

edit: on doit pouvoir ajouter des conditions pour le défilement mais il faudrait énoncer des conditions précises. Dans le fichier fourni, le défilement s'arrête quand on a affiché la ligne n° 77.
 

Pièces jointes

Dernière édition:
Bonjour ma pomme,

Je viens tout juste de prendre connaissance de ton fichier. Un travail exceptionnel. Est-il possible d'arrêter la recherche quand le plus grand nombre de numéros de A correspond à B, en respectant l'ordre dans la zone de recherche, alors la macro arrête.
 

Pièces jointes

À partir du fichier, comment traduire en langage VBA

si les numéros contenus entre E16 à G16 = E15 à G16 sont semblables alors arrêt de la macro

J'ai essayé :

If ("e16:g16") = ("e15:g15") then
exit sub
End if

Mais cela ne fonctionne pas
 
Bonjour à tous

Lucko
Pas une solution à ton problème
Mais une solution à une meilleure lisibilité de tes messages, déjà évoquée par JCGL que je salue au passage dans le message#5, mais que tu ne sembles pas avoir lue.😉
 
Dernière édition:
Bonjour Staple1600,

Merci de me rappeler à l'ordre si gentiment... donc je dois entrer le code comme cela:
Code:
If ("e16:g16") = ("e15:g15") then
exit sub
End if

Et non plus en utilisant des fichiers à titre d'exemple?
 
Re

Tu peux faire les deux
Je disais juste que c'est plus lisible quand on distingue facilement le code VBA du reste du message.

l'idéal à mon sens c'est :
1) un titre explicite
2) un message détaillé dans la discussion qui explique le problème à résoudre
(ce qui permet au lecteur de determiner si la question l'interesse et lui évite de télécharger un fichier pour rien si ce n'est pas le cas)
3) un fichier exemple joint par demandeur dès le premier message
(fichier allégé et anonymisé et sans fioritures: pas d'images de couleur etc..)

Mais çà c'est dans mon monde idéal 😉 et comme on le sait tous , ici, sur XLD, c'est le vrai monde 😉

Au fait, il existe aussi un mode Edition qui permet de revenir sur les anciens messages.
Donc pour avoir une discussion tout propre et guillerette, tu peux rajouter des balises CODE partout où tu as du code VBA dans tes messages 😉

Pour revenir à ta question, je laisse mapomme continuer sur le chemin de la résolution.
Car je m'en dois sortir dans le vrai monde pour aller rencontrer quelques vrais gens, dans un vrai champ, tout de chanvre vêtus (salon bio oblige). 😉
Par contre c'est un monde qui n'a rien d'idéal, quand je vois le prix sur les étiquettes en papier recyclé.😉
 
Staple1600,

C'est vrai que c'est plus lisible. Comme je m'y connais peu en VBA, je viens sur ce site de temps en temps pour trouver des réponses à mes problèmes avec Excel car il y a ici beaucoup de virtuoses du code VBA. Je ne suis pas au courant de tous les changements apportés à ce forum si exceptionnel. Honte à moi, en fait!
 
Bonjour Lucko, Staple1600,
(...) Est-il possible d'arrêter la recherche quand le plus grand nombre de numéros de A correspond à B, en respectant l'ordre dans la zone de recherche, alors la macro arrête.

C'est quoi A et B ? C'est quoi quand le plus grand nombre de numéros de A correspond à B ?

nota:
j'attends avec impatience le retour de Staple1600 pour qu'il nous apprenne comment coder BIO 😀.
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
10
Affichages
653
Réponses
18
Affichages
422
Réponses
2
Affichages
345
Réponses
17
Affichages
1 K
Retour