Boucle Loop qui ne se lance pas

Snoopy6102000

XLDnaute Junior
Bonjour,

J'ai créé une boucle dans ma macro, qui s'applique à un fichier que je viens d'ouvrir. Le soucis c'est que quand mon fichier s'ouvre, la Boucle ne se fait pas.

Le premier jet est fait et fonctionne bien que pour l'instant j'ai basé le nom du fichier par "nomdufichier1"...
Autre soucis lié à ça, je fais un second enregistrement en cas de modification, et donc dans mon fichier listing j'ai une cellelu à mettre à jour : le montant. je dois donc retrouner dans mon listing, retrouver la ligne (ça c'est pas dur, le numéro a été récupéré avant), et recopier.
Le soucis avec mon code, c'est qu'une fois que le fichier listing est ouvert, la macro n'enchaîne pas sur ma boucle :

Sub Réenregistrement()

' Réenregistrement avec nouveau montant
ActiveWorkbook.Save
'réouverture du fichier listing

Dim Année, Fichier, Chemin, AN, CheminComplet
Chemin = "\\HRY1129\Atelier\Clients\Remises de Prix\"
Année = Year(Sheets("Devis").Range("BD2")) & "\"


Fichier = "DEVIS_" & Sheets("Base").Range("P9").Value & ".xlsm"
AN = Sheets("Base").Range("P9").Value
CheminComplet = Chemin & Année
Devis = "Fiche devis " & Sheets("Base").Range("O11") & ".xlsm"
CopieMontant = Workbooks(Devis).Sheets(1).Range("U2")


Workbooks.Open CheminComplet & Fichier


B = 6
Set Cherche = Workbooks(Fichier).Sheets(1).Cells(B, 2)
Set CopieMontant = Workbooks(Devis).Sheets("Base").Range("H341")
Set Numero = Workbooks(Devis).Sheets("Devis").Range("U2")

Do While ArrêtChercher <> trouvé = Numero
With Sheets(1).Range("A6:s1206")
Set trouvé1 = .Find(Cherche)

If trouvé1 = Numéro Then
CopieMontant.Copy Workbooks(Fichier).Sheets(1).Cells(B, 10)
End If
End With

B = B + 1

Set Cherche = Sheets(1).Cells(B, 2)
Set CopieMontant = Workbooks(Devis).Sheets("Base").Range("H341")

Loop


'Fermer fichier linsting DEVIS


End Sub


Faut-il plutôt que j'appelle cette macro dans le fichier ouvert? Le pb est que cette boucle utilise les 2 fichiers ouvert. Elle trouve un numéro en U2 de mon premier fichier, et le chercher dans le fichier que je viens d'ouvrir, afin de mettre à jour le Montant.

Merci d'avance pour votre aide.
 

Paritec

XLDnaute Barbatruc
Re : Boucle Loop qui ne se lance pas

Bonjour Snoopy le forum
bon alors sans fichier c'est pas facile de te répondre mais déjà une chose que tu n'as pas remarqué je pense, c'est que une variable si tu l'appelles numéro il ne faut pas après lui demander numero
Une macro c'est précis pas à peu près.
J'en profite pour te dire que si tu étais en option explicit, ce genre de souci, ne t’arriverais pas car lors du lancement de la macro tu aurais un message de défaut
a+
Papou:eek:
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Boucle Loop qui ne se lance pas

Bonjour Snoopy, bonjour le forum,

Le code s'est bien mais avec les fichiers exemple qui vont avec c'est mieux ! Parce que là on ne peut pas tester, juste relire ton code...

Tu ne déclares pas toutes les variable et tel que tu le fais elles sont toutes déclarées de type Variant.
La bonne méthode serait :

Code:
Dim Chemin As String
Dim Année As String
Dim Fichier As String
Dim CheminComplet As String
Dim Devis As String
Dim CopieMontant As Variant
Dim Cherche As Range
Dim Numero As Range
ou
Code:
Dim Chemin As String, Année As String, etc...

Ensuite, j'ai repéré cette première anomalie :

Code:
AN = Sheets("Base").Range("P9").Value
puis la variable AN n'est pas utilisée dans la code...

Puis :

Code:
CopieMontant = Workbooks(Devis).Sheets(1).Range("U2")
'...
Set CopieMontant = Workbooks(Devis).Sheets("Base").Range("H341")
Comme tu n'as pas défini le type on ne sait pas si tu veut la valeur qui serait CopieMontant = Workbooks(Devis).Sheets(1).Range("U2").Value ou la cellue (avec SET)

Après j'avoue que je ne comprends plus...

Code:
Do While ArrêtChercher <> trouvé = Numero

Bref, sans les fichiers et une explication claire de ce que tu veux, difficile de t'aider...

[Édition]
Bonjour Papou on s'est croisé...
 

Snoopy6102000

XLDnaute Junior
Re : Boucle Loop qui ne se lance pas

Bonjour et merci de votre réponse. En fait là je n'ai mis que la partie bloquante, car le reste tourne bien le fichier est très lourd, etdu coup c'est pas facile de le mettre joint, d'autant que là il s'agit de 2 fichiers.

Je vais essayer d'expliquer plus clairement.

J'ai un fichier modèle Devis. Je l'exécute à partiR de l'explorer pour avoir unE copie, qui se nomme donc "Devis1" quand je le lance. Là je remplis mes infos (clients, date de devis, émetteur).
Lorsque je lance la macro plus haut, celle-ci ouvre le fichier "Listing" (où sont recensés tous les devis avec un numéro), recherche la première ligne libre, y complète les infos (Clients, date de devis, émetteur), et me donne, sur la même ligne le numéro du devis, que je viens remettre automatique dans ma feuille de devis. Ensuite, celui-ci s'enregistre en prenant comme nom le numéro de devis ainsi attribué.

Mon soucis est le suivant.
Dans ce fichier devis, je vais indiqué la main d'oeuvre, matière... Ce qui va me donner un prix total pour le devis (il y a aussi possibilité que celui-ci soit revu ultérieurement). Du coup, il faudrait que je rouvre le ficher Listing (ça ça va), que je recherche la ligne correspondant au numéro du devis, et que je mette le prix dans la colonne correspondante.
Passant par une macro pour éviter d'avoir des problèmes de liaisons entre les fichiers, j'ai pensé passer par la boucle loop, qui recherche le numéro de devis (indiqué dans une cellule du fichier Devis) dans le fichier Listing, et une fois trouvée, elle va mettre le montant dans la colonne que cette même ligne.
Mon soucis est que la macro s'arrête dès que le fichier listing s'ouvre.
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Boucle Loop qui ne se lance pas

Bonjour le fil, bonjour le forum,

Pas de bras pas de chocolat ! disait Omar dans les intouchables... Moi je dis : Pas de fichier pas d'aide... Tu ne réponds même pas aux remarques que je t'ai faites...
De plus, t'es pas obligé de mettre tes fichiers originaux trop lourds mais rien ne t'empêche d'en créer deux permettant d'exécuter ton bout de code. Le site permet de mettre deux fichiers en pièces jointes...

Mais si ta la flemme, c'est pas moi qui vais tout recréer pour ta pomme !
 

Snoopy6102000

XLDnaute Junior
Re : Boucle Loop qui ne se lance pas

Bonjour, ce n'est pas que je ne veux pas répondre, mais j'ai besoin de tester à partir des remarques que tu m'as faite. N'ayant pas une tonne d'expérience, cela me prend un peu de temps, car je me mets en mode pas à pas pour identifier le probmlème, je voulais juste éclaircir ce dont j'avais besoin avant de pourvoir dire, aprè_s test, si les modifications apportées et corrections auront suffit. je suis en train de tester.
Et je n'ai pas la flemme car je l'ai déjà fait sur ce site, je vais tester, et si ça marche, mettre la correction, et si ça va pas, mettre mes fichiers en mode réduit".
 

Snoopy6102000

XLDnaute Junior
Re : Boucle Loop qui ne se lance pas

Bonjour Paritec (désolé ton message s'était perdu avec les réponses plus longue)
Peux-tu me dire comment et où il faut mettre l'option Explicit, car j'avais essayé mais ça me mettait une erreur.
Merci d'avance.
Et numéro correspond à "0001", "0002", "0003" .... "1201" donc en fait c'est plus un texte qu'un numéro car mon 0 est important, je l'ai appelé Numéro pour m'y retrouver.
 

Paritec

XLDnaute Barbatruc
Re : Boucle Loop qui ne se lance pas

Bonjour Snoopy Joss56:eek: Robert:eek::eek: le forum
oui tu as parfaitement interprété ma remarque Joss, car dans sa macro il appelle tantôt Numéro avec accent et tantôt Numero sans accent!!!
Pour te répondre Snoopy, oui tu avais des erreurs, car si tu ne déclares pas tes variables correctement et que tu est en option explicit, tu as un message de défaut c'est normal, mais si tu apprends à déclarer tes variables au lieu de les passer toutes en variant comme te l'as expliqué aussi l'ami Robert:eek:, tu vas y gagner en clarté dans tes codes, et surtout cela va t'apprendre à déclarer tes variables comme il faut.
Il faut savoir que Dim i , a,b,c,d as long signifie i as variant, a as variant, b as variant,c as variant, d as long !!!!
a+
Papou:eek:

EDIT: bonjour Robert:eek: Toujours en forme? et au soleil??
 
Dernière édition:

Snoopy6102000

XLDnaute Junior
Re : Boucle Loop qui ne se lance pas

Merci je n'avais pas compris comme ça. Il suffit de mettre "Option explicit" en début de macro c'est ça?
Oulàà je crois que je vais avoir pas mal de correction à faire, mais tant mieux, ça va me permttre d'être plus claire. Comme ça je verrai les erreurs. Je reviens vers vous demain !
 

Paritec

XLDnaute Barbatruc
Re : Boucle Loop qui ne se lance pas

Re snoopy le forum
oui STP fais nous un petit fichier exemple, tu prends ton vrai fichier tu fais une copie que tu appelles Snoopy V1 et tu retires les données sensibles de ce fichier et tu nous passes le fichier avec les explications de ce que tu veux obtenir, éventuellement tu mets une feuille résultat avec les explications et on va t'aider à te mettre sur le bon chemin
Pour option explicit tu le mets en haut du module même si tu as ensuite 10 macros c’est valable pour toutes les macros du module ainsi déclaré
a+
Papou:eek:
 

Snoopy6102000

XLDnaute Junior
Re : Boucle Loop qui ne se lance pas

Tout se passe en module 9 de mon fichier DevisLct1.
Pour visualiser (bien sûr du coup il vous faut pour tester modifier les chemins d'accès) : j'ai saisi mon deivs je clique sur "récupérer numéro devis" (en haut) et hop, ça m'ouvre DEVIS_2014 (suivant l'année, et s'il n'existe pas, il me prend le modèle pour le créer - je prépare 2015 lol)., il chercher la première ligne de libre, saisie les infos, et reviens mettre le numéro correspondant dans le devis.
Ensuite, par exemple, vous modifez en OP1 où il y a "TOUR" vous modifiez, vous mettez 2, au lieu de 1 (soit 2h au lieu d'1), Du coup ça modifie le montant, et moi j'aimerai pouvoir cliquer et aller le remettre ce montant total du devis à jour dans le fichier Devis 2014.

merci je reviens tout à l'heure
 

Discussions similaires

Statistiques des forums

Discussions
312 493
Messages
2 088 958
Membres
103 990
dernier inscrit
lamiadebz