Des lignes de code qui ne s’exécutent pas.

Mickcroco

XLDnaute Nouveau
Boujour à tous,


Je tourne en rond depuis 2 jours, il y a une situation dans mon code qui fait qu’il y a des lignes de codes qui ne s’exécutent pas mais, il n’y a aucune raison apparente.

Voici les lignes :

1) Worksheets("FormuleBuffer").Rows(3).Delete
2) Range("C2").Select
3) ActiveCell.FormulaR1C1 = _
"=IF(ISNA(MATCH(RC[-1],R[1]C[-2]:R17C[- 2],0)),SUMPRODUCT((ISTEXT(R[1]C[-2]:R17C[-2])*1)),""Item trouvé"")"

PIRE encore, la première ligne est exécutée et il n’y a rien entre d’autre celles-ci !!!!!


La but de tout cela est la gestion d’une liste des quinze derniers items utilisés « Ajouté » dans le fichier FicheÉlèveProf.xls.
La liste des quinze items est sous le fichier MENU.xls, feuille FormuleBuffer.


Quand, je test la gestion des 15 items DIRECTEMENT par la cellule B2 sur la feuille FormuleBuffer, il n’y a pas de problème.
Par contre, si je passe par la FicheÉleveProf (qui reflète la situation réelle), les lignes ci-haut ne sont pas exécutées, sauf la première ?????


NOTE : Ah! Oui, pour vos tests, n’utilisez pas de chiffres…. Chiffre + Lettres = OK.
Le fichier FicheÉlèveProf est dans un sous-répertoire : PrêtRetour.

IMPORTANT : Cette question sera mise sur les sites : Excel-Pratique et Excel - Download


MERCI pour le temps et les tests que vous ferez !!!!!
 

Pièces jointes

  • Menu.xls
    74 KB · Affichages: 46
  • FicheEleveProf.xls
    78.5 KB · Affichages: 40
  • Menu.xls
    74 KB · Affichages: 45
  • FicheEleveProf.xls
    78.5 KB · Affichages: 50
  • Menu.xls
    74 KB · Affichages: 46
  • FicheEleveProf.xls
    78.5 KB · Affichages: 51

frangy

XLDnaute Occasionnel
Re : Des lignes de code qui ne s’exécutent pas.

Bonjour,

Tu peux commencer par modifier cette ligne de code afin d'indiquer explicitement le nom du classeur concerné par le traitement.
Code:
ThisWorkbook.Worksheets("FormuleBuffer").Rows(3).Delete

Cordialement.
 

ROGER2327

XLDnaute Barbatruc
Re : Des lignes de code qui ne s’exécutent pas.

Bonjour à tous


Je n'ai pas vraiment compris tout le fonctionnement des fichiers faute de mode d'emploi, mais il semble qu'il faut préciser dans quel fichier on lit ou on écrit. Peut-être cela :​
VB:
Private Sub Worksheet_Change(ByVal Target As Range)

Dim Ligne As Integer
Dim Plage As Range
Dim NouvelItem As String
Dim LongeurDeListe  As Variant      ' Variant: Type de variable qui peut recevoir
                                    ' plusieurs types de contenus...
On Error GoTo Erreurs
If Target.Address = "$B$2" Then        ' Si le changement est dans la cellule B2.
   Application.EnableEvents = False    ' Ceci met à OFF la gestion d'évenement
                                       ' dans le but de garder le ctrl
                                       ' durant nos opérations.
With Workbooks("Menu.xls").Worksheets("FormuleBuffer")
   LongeurDeListe = .Range("C2")
   NouvelItem = .Range("B2")
   If LongeurDeListe <> "Item trouvé" Then
      If LongeurDeListe = 15 Then      ' Si la longeur = 15, on enlève le
                                       ' premier item de la liste, donc la 3e ligne.
         .Rows(3).Delete      ' Retire le premier item.
' -----------------------------------------------------
         .Range("C2").FormulaR1C1 = _
         "=IF(ISNA(MATCH(RC[-1],R[1]C[-2]:R17C[-2],0)),SUMPRODUCT((ISTEXT(R[1]C[-2]:R17C[-2])*1)),""Item trouvé"")"
' -----------------------------------------------------
         LongeurDeListe = .Range("C2")
      Else                             ' La liste est < que 15.
         NouvelItem = .Range("B2")
         ' Range("A" & LongeurDeListe + 1 + 2) = NouvelItem

      End If
   .Range("A" & LongeurDeListe + 1 + 2) = NouvelItem
   Workbooks(NomDeLaFicheEleveProf).Activate           ' Active la FicheÉleveProf.
   End If
End With
      Application.EnableEvents = True     ' Remet la gestion d'évenement à ON
End If

Erreurs:
   If Err <> 0 Then Application.EnableEvents = True   ' Remet la gestion d'évenement à ON


End Sub



ROGER2327
#5872


Mardi 24 Palotin 139 (Sainte Lumelle, écuyère - fête Suprême Quarte)
24 Floréal An CCXX, 3,2189h - valériane
2012-W19-7T07:43:31Z
 

Mickcroco

XLDnaute Nouveau
Re : Des lignes de code qui ne s’exécutent pas.

Bonjour Frangy et Roger2327,


Frangy, j'ai corrigé comme tu as suggéré mais, çca ne règle pas le problème de départ.

Cordialement, MERCI bien !!!!!


Roger2327, voici le mode d'emploi:
Je vais plutôt te donner la marche à suivre pour te démontrer le problème.

À retenir: La but de tout cela est la gestion d’une liste des quinze derniers items utilisés « Ajouté » dans le fichier FicheÉlèveProf.xls. Si un nouvel item est ajouté dans (FicheÉlèveProf.xls - bouton Menu - Ajout manuel) et que cette item n'est pas listé dans (Menu.xls - feuille FumuleBuffer - colonne A), il doit-être ajouté dans celle-ci.

En résumé: Ceci ajit un peut comme dans Excel et les 10 derniers fichiers enregistrés retenu (selon nos options).


I- Ouvrir les deux fichier (Menu et FicheÉleveProf)
II- Aller sur le fichier (Menu.xls - feuille FumuleBuffer)
N.B: Je crois avoir envoyé la feuille FumuleBuffer avec 15 Items (de A3 à A17)
Si ce n'est le cas, ajuster pour avoir 15 items S.V.P..
III- Mémoriser l'item en A3.
IV- Aller à la cellule B2 et tapez une chaîne de caractères... (pas de nombre seul), suivi de [ENTRER].
V- Vérifier que votre ITEM s'est ajouté au bas de la liste et que le premier est disparru, donc 15 item au total.

Tout fonctionne bien mais, ici nous venons de tester le code de la feuille FormuleBuffer comme en mode de "développement".

Voici le mode de fonctionnement normal et qui est problèmatique:

1- Aller à (FicheÉlèveProf.xls - bouton Menu - Ajout manuel)
2- Tapez une chaine de caractères qui n'est pas listée sous la colonne CodeBar... (pas de nombre seul), suivi de [ENTRER].
3- Annuler la nouvelle InputBox
4- Vérifier que votre item est ajouté au bas de la colone CodeBar FicheÉlèveProf.
5- Aller sur le fichier (Menu.xls - feuille FumuleBuffer), l'item que vous venez de taper est ajouté dans la cellule B2 mais, pas dans la liste des 15 items en (A3 à A17) comme c'était le cas à l'étape 'V'.

C'est sur ce problèeme que ma question est posée.....


En mode de développement, le code suivant est exécuter:

Worksheets("FormuleBuffer").Rows(3).Delete
Range("C2").Select
ActiveCell.FormulaR1C1 = _
"=IF(ISNA(MATCH(RC[-1],R[1]C[-2]:R17C[- 2],0)),SUMPRODUCT((ISTEXT(R[1]C[-2]:R17C[-2])*1)),""Item trouvé"")"


En mode de fonctionnement normal, seule la première ligne du code ci-haut est exécutée pourtant, l'item tapé dans (FicheÉlèeveProf) se retrouve bien dans la cellule B2, alors que se passe t'il ?


NOTE: Si vous voulez suivre le code de ((Menu.xls - feuille FumuleBuffer) en mode pas pas, mettre un point d'arrêt à la ligne de code On Error GoTo Erreurs et refaire les étapes (I à V) et (1 à 5).....



Je sais bien que tout cela est long comme explication mais.....



En vous remerciant d'avance !!!!!
 

ROGER2327

XLDnaute Barbatruc
Re : Des lignes de code qui ne s’exécutent pas.

Bonjour Mickcroco



Êtes-vous certain d'avoir essayé le code proposé au message #3 ?​



ROGER2327
#5873


Jeudi 26 Palotin 139 (Sainte Prétentaine, rosière - fête Suprême Quarte)
26 Floréal An CCXX, 0,5096h - fusain
2012-W20-2T01:13:23Z
 

ROGER2327

XLDnaute Barbatruc
Re : Des lignes de code qui ne s’exécutent pas.

Suite...


Dans le code du message #3, la ligne​
VB:
With Workbooks("Menu.xls").Worksheets("FormuleBuffer")
peut être remplacée par​
VB:
With Me
(On ne sera pas obligé de modifier le code si on veut changer le nom de la feuille... ...sauf si le nom est employé ailleurs, bien sûr.)​



ROGER2327
#5874


Jeudi 26 Palotin 139 (Sainte Prétentaine, rosière - fête Suprême Quarte)
26 Floréal An CCXX, 3,4578h - fusain
2012-W20-2T08:17:55Z
 
Dernière édition:

Mickcroco

XLDnaute Nouveau
Re : Des lignes de code qui ne s’exécutent pas.

Bonjour Roger2327,


Toutes mes excuses Roger, je m'en veux.....


Heir, quand j'ai essayé votre code, j'ai obtenu des erreurs que je trouvais bizzard (pas rapport).....

Tantôt en voyant votre insistance sur votre code du troisième message, j'ai essayé à nouveau et ça fonctionne çà merveille !!!!!
Je crois bien que c'est dû au fait qu'avant hier, j'ai fais du ménage dans mes fichiers et j'ai probablement fais un mélange entre ceux-ci......

Par chance tout est maintenant rétabli...... Vive les backup "anti-gaffe"!!!!!


En tout cas, excusez-moi et j'espère que ça ne vous a pas causé d'ennuis.


MERCI beaucoup pour votre aide !!!!!
 

Discussions similaires

Statistiques des forums

Discussions
312 229
Messages
2 086 426
Membres
103 206
dernier inscrit
diambote