Boucle VBA

Résolu/Fermé
jujumty77 Messages postés 9 Date d'inscription mercredi 10 juillet 2019 Statut Membre Dernière intervention 10 juillet 2019 - 10 juil. 2019 à 11:16
jujumty77 Messages postés 9 Date d'inscription mercredi 10 juillet 2019 Statut Membre Dernière intervention 10 juillet 2019 - 10 juil. 2019 à 17:37
Bonjour Bonjour,

Je suis complètement nulle en VBA malgré de multiples formations.
J'arrive à savoir ce que je veux mais je n'arrive pas à le coder :
J'espère que mon explication sera assez claire :

Tant que :
Dans le classeur 'requete journaux macro', colonne B n'est pas vide
Copier la cellule d'à coté A
Aller dans le classeur 'requete générale'
Faire un controle F, et coller la valeur qu'on avait copier
Copier la cellule trouvé (qui sera dans la colonne A)
Retourner dans le classeur 'requete journaux macro'
Coller dans B
Fin de tant que.


D’après moi ça marche car j'ai réussi à créer cette macro par l'exemple mais je n'arrive pas à rajouter la boucle :'(

Ps : j'ai essayé avec une recherche V toute simple mais ça ne fonctionne pas car dans la case A du classeur requete générale, ce qui compose la cellule est plein d'espace, de virgule, et de texte inutile.

Merci D'avance.
Bonne journée

2 réponses

f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709
10 juil. 2019 à 11:49
Bonjour,

Vous devriez mettre vos classeur a dispo, car peut-être que ca marche, mais comprends rien…….

Site de partage: https://mon-partage.fr/
0
jujumty77 Messages postés 9 Date d'inscription mercredi 10 juillet 2019 Statut Membre Dernière intervention 10 juillet 2019
10 juil. 2019 à 11:57
Bonjour ça aurait été avec plaisir mais je ne peux pas partager ces classeurs il y a des données confidentielles.
Je vais trouver! merci quand meme :)
0
yg_be Messages postés 23309 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 2 novembre 2024 1 551 > jujumty77 Messages postés 9 Date d'inscription mercredi 10 juillet 2019 Statut Membre Dernière intervention 10 juillet 2019
10 juil. 2019 à 12:44
pourquoi ne pas publier le fichier sans les données?
0
jujumty77 Messages postés 9 Date d'inscription mercredi 10 juillet 2019 Statut Membre Dernière intervention 10 juillet 2019
10 juil. 2019 à 14:29
Je vais essayé de faire un fichier simplifier. je l'envoie ! merci beaucoup
0
jujumty77 Messages postés 9 Date d'inscription mercredi 10 juillet 2019 Statut Membre Dernière intervention 10 juillet 2019
10 juil. 2019 à 14:46
https://mon-partage.fr/f/bhLMWHiN/

Voici le lien.

En gros je voudrais que dans la colonne B de l'onglet 'journaux' j'ai le titre de l'article (qui est dans l'onglet 'Articles').
Par ce que en fait dans l'onglet article colonne A j'ai toutes les informations qui sont dans une seule case, alors que j'aimerais que le journal (qui correspond à la dernière partie de la case) soit dans une case à coté. Je sais qu'il existe d'autre méthode et pas uniquement le VBA mais la rechercheV (avec Vrai) me donne pas les bons résultats, et je ne connais pas la formule qui me fait prendre que les derniers caractères de la cellules (sachant qu'il n'y a jamais le même nombre de caractère).
dites moi si je ne suis pas claire.

Merci d'avance
0
yg_be Messages postés 23309 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 2 novembre 2024 1 551 > jujumty77 Messages postés 9 Date d'inscription mercredi 10 juillet 2019 Statut Membre Dernière intervention 10 juillet 2019
10 juil. 2019 à 14:56
je ne vois pas la macro dans le fichier.
0
yg_be Messages postés 23309 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 2 novembre 2024 Ambassadeur 1 551
Modifié le 10 juil. 2019 à 12:54
bonjour, quelles formations as-tu suivies?
je remarque que ta boucle ne s’arrête jamais: est-ce bien ce que tu souhaites?
0
jujumty77 Messages postés 9 Date d'inscription mercredi 10 juillet 2019 Statut Membre Dernière intervention 10 juillet 2019
10 juil. 2019 à 14:29
Des formations en entreprises, toutes simple !
si désolée elle est censée s’arrêter jusqu'à que B ne soit plus vide. Désolée c'est que je ne sais pas bien faire...
0
yg_be Messages postés 23309 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 2 novembre 2024 1 551 > jujumty77 Messages postés 9 Date d'inscription mercredi 10 juillet 2019 Statut Membre Dernière intervention 10 juillet 2019
10 juil. 2019 à 14:51
montre le code que tu as déjà, ce sera plus simple de le completer.
commencer à la première ligne du classeur 'requete journaux macro
Tant que Dans le classeur 'requete journaux macro', colonne B n'est pas vide 
        dans le classeur 'requete générale' , faire une recherche sur base du contenu de la cellule de la colonne  A de 'requete journaux macro'
       Copier dans B de 'requete journaux macro' le contenu trouvé par la recherche
       passer à la ligne suivante dans le classeur 'requete journaux macro' 
continuer tant que. 
0
yg_be Messages postés 23309 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 2 novembre 2024 1 551 > jujumty77 Messages postés 9 Date d'inscription mercredi 10 juillet 2019 Statut Membre Dernière intervention 10 juillet 2019
10 juil. 2019 à 15:07
exemple de boucle:
Sub jujumty()
Dim nlig As Long
Dim journaux As Worksheet, articles As Worksheet
nlig = 1
Set journaux = ThisWorkbook.Sheets("Journaux")
Set articles = ThisWorkbook.Sheets("Articles")
Do While journaux.Cells(nlig, 2) <> ""
    'faire la recherche, dans articles, du contenu de journaux.Cells(nlig, 1)
    ' journaux.Cells(nlig, 2) = la valeur issue de la recherche
    nlig = nlig + 1
Loop
End Sub
0
jujumty77 Messages postés 9 Date d'inscription mercredi 10 juillet 2019 Statut Membre Dernière intervention 10 juillet 2019
10 juil. 2019 à 15:24
Je vous remercie !!
Je ne sais juste pas comment programmer la partie centrale, à savoir le contrôle F suivit du copier coller dans la bonne cellule ?

Merci d'avance
0
yg_be Messages postés 23309 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 2 novembre 2024 1 551 > jujumty77 Messages postés 9 Date d'inscription mercredi 10 juillet 2019 Statut Membre Dernière intervention 10 juillet 2019
10 juil. 2019 à 15:41
Sub jujumty()
Dim nlig As Long
Dim journaux As Worksheet, articles As Worksheet
Dim trouve As Range
nlig = 2
Set journaux = ThisWorkbook.Sheets("Journaux")
Set articles = ThisWorkbook.Sheets("Articles")
Do While journaux.Cells(nlig, 2) <> ""
    Set trouve = articles.Cells.Find(What:=journaux.Cells(nlig, 1), _
        LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _
        xlNext, MatchCase:=False, SearchFormat:=False)
    If Not trouve Is Nothing Then
        journaux.Cells(nlig, 2) = trouve
    End If
    nlig = nlig + 1
Loop
End Sub
0