Aide sur macro

Dans le menu Fichier > Aide ce qui m'intéresse c'est ce qu'il y a écrit au bout de la ligne version

verexc

Bien Noté : ( 32 bits ) et Part of Microsoft Office Professional plus 2010

Nathalie

Essaie avec le LVA cijoint

Si ça marche je modifierai les 2 autres.

13lva.xlsm (39.14 Ko)

c'est Idem , même Message d erreur

Tu as modifié Quoi

Nathalie

Au niveau des boutons j'ai juste supprimé les icônes.

Je ne sais pas je n'ai pas d'autre idée. C'est un programme qui sous différentes versions fonctionne à des centaines d'exemplaires et probablement plus... Donc je ne vois vraiment pas pourquoi chez toi ça ne fonctionne pas. C'est de la macro tout ce qu'il y a de plus basique. Pas la moindre gâterie supplémentaire...

On va voir s'il y a des réactions d'autres interlocuteurs... Mais pour l'instant je sèche.

C'est quoi ton Commun V ? Ton répertoire habituel de travail quand vous vous partagez des fichiers ? Sur un serveur ?

Tu n'as pas moyen de m'appeler ?

A+

Je vais tester chez Moi ce soir , sur mon PC Perso , et voir si j'ai le même problème

Si pas de souci et que tout fonctionne correctement, c'est alors peut être du a un Blocage Interne

Je te dis cela demain

Te souhaite une bonne soirée

Cordialement

Nathalie


Je viens de tester sans le useform , et la cela fonctionne correctement

J'ai incrémenter manuellement , et tout remontent correctement

Cela va peut être t'aider

Nathalie

C'est bizarre , car quand je veux modifier via le useform , cela Fonctionne , mais quand je veux faire Nouveau et la fin de la saisie dans USEFORM pour valider , la cela BUG

Voila , je na sais si cela va aider , mais bon, on ne sait jamais

Nathalie

Ah ! Ben si tu me dis tout...

Je vérifie l'Ajout.


Non mon ajout fonctionne correctement.

Il faudrait tester avec le débogage pas à pas et des points d'arrêts sur le cmdConfirm pour voir à quelle ligne ça coince...

Je ne comprend pas tout , mais pas de débogage a faire sur la Macro , aucun Message , juste que cela ferme Excel

Nathalie

Ben si tu poses pas de point d'arrêt c'est sur que t'auras pas de débogage !

La je suis LARGUER

Nathalie

En fait les 3 fichiers JHA, LVA et DLA ne devrait jamais être ouverts ensemble sur le même ordinateur.

Tu peux modifier le VBA de chaque UserForm de la manière suivante :

Au lieu de : (première ligne de la macro)

Enum Status 

mettre :

Private Enum Status

Cependant bien que ce soit important, je ne pense pas que ce soit ça qui provoque tes erreurs.

Débogage :

La macro cmdConfirm_Click est écrite comme ça :

Private Sub cmdConfirm_Click()
 Select Case UserFormStatus
  Case Status.NewRec ' Nouvel enregistrement
   WriteRecord rng.Rows.Count: InitData: InitRowSource
   Me.cboRecord.ListIndex = rng.Rows.Count - 1
  Case Status.Modify: WriteRecord CurrentRecord ' Modification de l'enregistrement
 End Select
 OppositeStatus ' Inverse la valeur booléenne des boutons d'action
End Sub

Tu vas la réécrire comme ça : (en fait il suffit de sélectionner les ":" et de faire [Enter] à la place

Private Sub cmdConfirm_Click()
 Select Case UserFormStatus
  Case Status.NewRec ' Nouvel enregistrement
   WriteRecord rng.Rows.Count
   InitData
   InitRowSource
   Me.cboRecord.ListIndex = rng.Rows.Count - 1
  Case Status.Modify
  WriteRecord CurrentRecord ' Modification de l'enregistrement
 End Select
 OppositeStatus ' Inverse la valeur booléenne des boutons d'action
End Sub

Ensuite tu positionnes le curseur sur chacune de ces 4 lignes :

   WriteRecord rng.Rows.Count
   InitData
   InitRowSource
   Me.cboRecord.ListIndex = rng.Rows.Count - 1

et sur chaque ligne tu fais [F9] Tu va avoir un point d'arrêt rouge qui va s'afficher sur la barre de gauche.

Si tu recliques sur la barre le point s'efface

Si tu recliques sur la barre le point se rallume

Quand les 4 lignes ont des points tu peux commencer à tester ton UserForm en mode Ajout.

Quand tu vas valider, la macro va s'arrêter sur chaque point : il faudra faire [F8] à chaque fois pour continuer jusqu'à la ligne suivante.

et noter jusqu'à quel point tu peux aller avant que ça plante , C'est un peu délicat car il y a quatre appels de Sub donc on est parfois un peu surpris quand ça plante et on ne se rappelle pas forcément quelle est la dernière ligne qui n'a pas eu de problème. mais le nœud du problème est là. Jusqu'à la dernière ligne sans problème : c'est qu'il n'y a pas de problème ! Quand ça plante, il faut identifier la ligne fautive arrêter de faire [F8] avant que ça plante et survoler toutes les variables, Eventuellement utiliser le volet d'Exécution pour voir pourquoi la ligne suivante va beuguer...

C'est là que ce serait intéressant que je sois pendu à ton téléphone...

T'as compris ?

Bonjour Galopin

J'ai testée chez Moi , sur mon PC , et cela fonctionne correctement,

Donc je pense que c'est un blocage INTERNE , Donc pas un Bug sur les macros

Et idem , si je ne suis pas sur le réseau , cela fonctionne aussi

Donc Super Boulot de ta part , il va falloir que je trouve une autre solution , qui ne soit pas bloquer par le système

Faire une saisie , via un useform, et trouver une formule qui copie au fur et a mesure , sans écraser les lignes existante dans le fichier Recap

Tu en penses Quoi, cela est il faisable

En attente de ta réponse

Cordialement

Nathalie

Moi je pense qu'un petit quart d'heure de débogage peut être utile... (C'est quand m^me le b+a = ba de la prog !

Je serai quand même curieux de savoir laquelle de ces 4 lignes bloque le processus.

Sachant que ces quatre lignes sont de toute façon déjà utilisée sans problème au moment de l'ouverture du UserForm, je ne vois pas pourquoi cinq minute après ton VBA nous fait un caca nerveux...

Après si on ne trouve pas ou ça beugue et surtout pourquoi...

Puisque ta macro de récupération n'est pas impactée :

Ben la seule solution sera de virer complètement le UserForm ainsi que la macro de lancement, le bouton qui lui est attaché et la Sub Woorksheet_DoubleClick et de démasquer le colonne A. Après ça, laisser les opérateur travailler à l'ancienne, en leur expliquant bien qu'il doivent incrémenter la colonne A de 1 à chaque fois et surtout ne pas essayer de remplacer un N° supprimé...

Pour ça il n'y a pas de formule possible...

A+

J'ai effectué le test suite a ton descriptif , et ca plante a ce niveau ( .Value = Application.WorksheetFunction.Max(rng.Columns(1)) + 1),et la ca plante Excel

Private Sub WriteRecord(ByVal RecordNumber As Long)

' Ecriture de l'enregistrement

Me.cboRecord.ListIndex = -1

RecordNumber = RecordNumber + 1

With rng

With .Cells(RecordNumber, 1)

If Len(.Value) = 0 Then ' ID

.Value = Application.WorksheetFunction.Max(rng.Columns(1)) + 1

End If

End With

.Cells(RecordNumber, 2) = Me.txtDest

.Cells(RecordNumber, 3) = Me.txtDoss

.Cells(RecordNumber, 4) = CDate(Me.txtDate)

.Cells(RecordNumber, 5) = CDbl(Me.txtMont)

.Cells(RecordNumber, 6) = CLng(Me.txtNoF)

End With

Me.cboRecord.ListIndex = CurrentRecord

End Sub

Cela t aide ou pas

Nathalie

Avant de faire quoi que ce soit dans le menu VBA regarde dans Outils > Références et vérifie que les références indiquées sont bien cochées.

S'il en manque une cherche là et coche là ou si l'une d'elle est déclarée "manquante" trouves en une qui lui ressemble (à 1 numéro de version près) et coche là.

Ensuite essaie de remplacer ja ligne en cause par :

.Value = Application.Max(rng.Columns(1)) + 1
ref

Tout est ok dans référence

Ensuite j'ai remplacer la ligne en cause est toujours pareil

Nathalie

Désolé je ne vois aucune raison valable de shooter cette ligne pourtant ordinaire...

je ne serai pas là cet a.m. : En rentrant je te ferai une Function pour contourner cette ligne.

Ok , j'attend de tes nouvelles

Mais je ne m'explique pas pourquoi, sur mon PC Perso , tout fonctionne correctement

Te souhaites une bonne après midi

Nathalie

Essaie avec ce fichier

20lva.xlsm (41.33 Ko)
Rechercher des sujets similaires à "aide macro"