Il y a quelques semaines, j'ai développé avec l'aide du forum, un outil de recherche effectuant un report de données en fonction d'un mot-clé saisi dans une Inputbox.
Après quelques tests, il semblerait que le bon déroulement de la macro soit affecté par la présence de certaines feuilles de calcul de mon fichier.
Je rentre dans le détail, mon classeur contient :
12 feuilles nommées "Encais Janv08" jusqu'à Décembre.
12 feuilles nommées "Caisse Janv08" jusqu'à Décembre.
et 1 feuille nommée "Recherche" dans laquelle j'exécute cette macro (Bouton "Rechercher un mot").
Le programme liste la colonne D des feuilles "Encais" pour trouver les lignes concernées par le mot-clé saisi et reporte ces lignes en effectuant leurs totaux en fin de colonne E, F et G.
Or dans la configuration actuelle de mon classeur, il s'avère que l'affichage de ces totaux est désordonné, ils viennent se figer au milieu de mes lignes reportées, faussant le résultat escompté. (Voir essai avec le mot "CPAM")
Par contre, lorsque je supprime toutes les feuilles de calcul "Caisse" et les feuilles "Encais" encore vierge de toutes données (celles de Juin à Décembre 08), le programme fonctionne parfaitement. (Répartition de mes lignes de données en ordre chronologique et affichage de leurs totaux en fin de colonnes respectives.
Pouvez-vous intervenir pour corriger ce petit bug.
Re : Vba : Feuilles de calcul interférant sur le bon déroulement d'une macro
A mon avis il n'y a aucune raison pour que ce soit reporté deux fois.
Mais ça pouvait effectivement arriver avec ton code intial à cause de la boucle "For j = 1 To 50" et c'est pour cela que je l'ai supprimée dés le début.
Re : Vba : Feuilles de calcul interférant sur le bon déroulement d'une macro
RE,
Oups, je n'avais pas vu
Mes modifications :
En vert ce qui ne sert plus,
en rouge ce qui concerne la ligne d'écriture dans la feuille "Recherche",
en bleu ce qui concerne la dernière ligne de lecture des différentes feuilles "Encais...".
Re : Vba : Feuilles de calcul interférant sur le bon déroulement d'une macro
Les couleurs ne sont là que pour mettre en évidence sur le forum les modifs apportées au code mais, comme tu le dis, elles disparaissent lors du copier/coller et ne gène donc pas dans le code collé.
En revanche après le copier/coller il reste les cotes que l'on peut voir au début des lignes vertes, et qui servent à mettre les lignes en commentaire, donc là non plus pas de gène dans le code collé.
Il est vrai que je suis tout nouveau sur ce forum et ne connais donc pas encore toutes les coutumes pratiquées ici.
S'il est préconisé de ne pas colorer le code, alors aucun problème, je ne colorerais point.
Re : Vba : Feuilles de calcul interférant sur le bon déroulement d'une macro
RE,
Décidément ce soir je lis tout de travers, même pas vu les apostrophes en debut de ligne ....
Donc ne tiens pas compte de ce que j'ais dis précédemment
Il est vrai que je suis tout nouveau sur ce forum et ne connais donc pas encore toutes les coutumes pratiquées ici.
S'il est préconisé de ne pas colorer le code, alors aucun problème, je ne colorerais point.
Re : Vba : Feuilles de calcul interférant sur le bon déroulement d'une macro
Salut tout le monde,
Encore merci de m'avoir redirigé sur de fil CIBLEO.
C'est exactement ce que j'ai envie de faire parcontre je suis totalement novice et je ne sais pas comment adapter le travail à ma volonté (je veux chercher si un mot existe dans toutes les colonnes B par exemple de toutes les feuilles de mon classeur), comment je fais pour copier cette macro dans mon classeur Excel svp? etoù et quelles sont les changements à opérer.
Re : Vba : Feuilles de calcul interférant sur le bon déroulement d'une macro
Salut Bylka213,
Tu trouveras ci-joint les fichiers qu'il te faut, exportés de VBAProject de Cibleo
Pour les intégrer à ton classeur, il faut :
1) Ne pas oublier de créer une feuille nommée : "Recherche"
2) dézipper les 3 fichiers contenus dans le ZIP
3) ouvrir ton éditeur VBA ALT+F11
4) Dans l'éditeur VBA, Menu -> Fichier -> Importer un fichier
Tu importes en premier : Cibleo_Rechercher.frm
puis : Cibleo_MFCMOTCLE.bas
Nota : Tu va voir "Feuilles" apparaitre et "Modules"
5) dans modules, tu as un module qui s'appelle "MFCMOTCLE", double clique dessus, sur la partie droite de ta fenêtre va apparaitre le code
6) Pour une recherche dans la colonne B de chaques feuille il faut changer les valeurs en BLEU
Code:
Private Sub CommandButton1_Click()
Dim VSearch As String
ShtR.[H1].Value = TextBox1.Value
If TextBox1.Value = "" Then Exit Sub
Application.ScreenUpdating = False
x = 1
VSearch = Me.TextBox1.Value
For Each WS In ThisWorkbook.Worksheets
With WS
DerLiS = .Range("[B][COLOR=blue]B[/COLOR][/B]" & Rows.Count).End(xlUp).Row
' Si la feuille se nomme "Encais ..." alors on fait la recherche
If Left(.Name, 6) = "Encais" Then
i = Len(TextBox1.Value)
For Each Cellule In .Range("[COLOR=blue][B]B2:B[/B][/COLOR]" & DerLiS)
...
7) dans la feuille "Recherche" (toujours dans l'éditeur VBA), tu colles le code ci-dessous
Code:
Option Explicit
Private Sub CommandButton1_Click()
Rechercher.Show
End Sub
8) Tu sort de l'éditeur VBA et tu crées un bouton dans la feuille Recherche
Si tu as bien tout compris (je ne sais pas si j'ai été clair) en cliquant sur le bouton de ta feuille "Recherche" tu devrais voir apparaitre un USF pour la saisie du mot à rechercher.
Re : Vba : Feuilles de calcul interférant sur le bon déroulement d'une macro
Salut Bruno,
Tout d'abord merci pour tes explications je vois maintenant où je dois me diriger pour adapter un code à mon travail, je voulais savoir dasn ton post tu me mets un code avec des mots en bleu c'est ceux là que je dois changer pour adapter tu me dis, je ne comprends pas parce que je n'ai pas le même code je n'ai pas de "derlis" par exemple.
Je me disais c'est peut etre parce que mes feuilles ne se nomment pas feuil1 feuil2 ... à chaque demande d'un mot clé cela me met "pas de trace"