Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Vba : Feuilles de calcul interférant sur le bon déroulement d'une macro

cibleo

XLDnaute Impliqué
Bonsoir à tous,

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.

Je vous joins le fichier dans le lien ci-dessous.

Cijoint.fr - Service gratuit de dépôt de fichiers

Merci de votre aide

Cibleo
 
C

Compte Supprimé 979

Guest
Re : Vba : Feuilles de calcul interférant sur le bon déroulement d'une macro

Re,

Juste comme ça, ça n'arrive pas avec mon code

Car je cherche une occurence du mot et une seule, c'est tout.

Bonne soirée, bonne fin de match, bonne nuit, repose toi bien et à demain
 

TooFatBoy

XLDnaute Barbatruc
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.

@+
 
C

Compte Supprimé 979

Guest
Re : Vba : Feuilles de calcul interférant sur le bon déroulement d'une macro

Re, Marcel

A mon avis il n'y a aucune raison pour que ce soit reporté deux fois
Malheureusement SI !

Avec la première solution, c'est à dire celle là :
Code:
For j = 1 To 50
            If UCase(Mid(Cellule, j, i)) = UCase(TextBox1.Value) Then
Si il y'a plusieurs CPAM, effectivement, la ligne est enregistrée autant de fois qu'il y a le mot sur la ligne !

Voilà
 

TooFatBoy

XLDnaute Barbatruc
Re : Vba : Feuilles de calcul interférant sur le bon déroulement d'une macro

Je parlais pour le code que j'ai pondu : voir ma réponse précédente (la lire en entier et non uniquement la première phrase. ).
 
Dernière édition:
C

Compte Supprimé 979

Guest
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...".
Vaux mieux mettre le code tel qu'il doit être utilisé, car une fois que tu fais un copier/coller, le vert, le bleu, tout ça n'existe plus ...

A+
 

TooFatBoy

XLDnaute Barbatruc
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.


Bonne soirée.
 
C

Compte Supprimé 979

Guest
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.
Il n'y a pas de "coutumes" sur ce forum !
Il suffit simplement , dans la mesure du possible, de respecter les Lien supprimé du forum.

L'idée de mettre des couleurs, je l'utilise moi même parfois ...

Sur ce, je vais me coucher, j'ai les neurones qui chauffent de trop ...

A+
 

TooFatBoy

XLDnaute Barbatruc
Re : Vba : Feuilles de calcul interférant sur le bon déroulement d'une macro

Merci pour ton lien, je vais aller le lire (J'avoue ne jamais l'avoir lu avant de commencer à poster... Honte à moi !!! )

Bonne nuit.
 

cibleo

XLDnaute Impliqué
Re : Vba : Feuilles de calcul interférant sur le bon déroulement d'une macro

Bonsoir à tous,

Je viens de tester le programme, tout fonctionne à merveille.

Du joli travail de BrunoM45 et Marcel32 qui m'ont bien dépanner sur ce coup là, je n'oublie pas Lii pour sa contribution.

Encore merci à tous ceux qui ont participé à l'élaboration de cet outil de recherche et de contrôle, cela va bien aider ma secrétaire.

A bientôt pour de nouveaux fils.

Cibleo
 
Dernière édition:
C

Compte Supprimé 979

Guest
Re : Vba : Feuilles de calcul interférant sur le bon déroulement d'une macro

Salut Cibleo,

Merci pour le compliment, comme je le dis souvent : ça fait toujours plaisir



A un de ces jours sur le Forum ....
 

bylka213

XLDnaute Occasionnel
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.

Merci
 
Dernière édition:
C

Compte Supprimé 979

Guest
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.

Voili, voilà

A+
 

Pièces jointes

  • Cibelo_RechercheFrm+Bas.zip
    2.7 KB · Affichages: 25

bylka213

XLDnaute Occasionnel
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"

Je t'avoues etre un peu perdu
 
C

Compte Supprimé 979

Guest
Re : Vba : Feuilles de calcul interférant sur le bon déroulement d'une macro

Re Bylka213,

Quel code as-tu récupéré sur ce post, le mien dans le fichier que j'a i joint ou un autre !?

Le nom des feuilles doit être : Encais XXXXX

Sinon il faut changer cette ligne là
Code:
If Left(.Name, 6) = "[COLOR=blue][B]Encais[/B][/COLOR]" Then

A+
 

Discussions similaires

Réponses
7
Affichages
688
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…