XL 2013 [RESOLU] Problème incrémentation cellule

BENAM69

XLDnaute Occasionnel
Bonjour le forum,

Je me remets à vous car je ne trouve aucune explication qui me permet de trouver le problème dans ma macro.

J'ai programmé un outil qui fonctionne bien. Malheureusement, je bute sur un détail essentiel. et ce dernier détail m'empêche de mettre à disposition cet outil aux collègues.

Sur mon userform1, j'ai le bouton "envoi de la demande". Quand je clique dessus, il fait un certain nombre de chose. Dont incrémenter une cellule sur mon onglet "Paramètres".

J'ai réalisé ce code :
VB:
If Worksheets("Feuil2").Range("C4").Value = "A" Then
   Worksheets("Paramètres").Range("AO2").Value = Worksheets("Paramètres").Range("AO2").Value + Worksheets("Paramètres").Range("AQ2").Value
End If

PS : Pour info j'aurai pu faire ceci ça fonctionne aussi :
VB:
If Worksheets("Feuil2").Range("C4").Value = "A" Then
   Worksheets("Paramètres").Range("AO2").Value = Worksheets("Paramètres").Range("AO2").Value + 1
End If

Mais le problème, Quand j'ouvre le fichier, je tape les infos sur la partie "Critères de la commande" sur l'userform 1 (C'est cette zone la que les données en partie va se copier coller sur la Feuil2 du classeur).
Quand je clique :
S'il détecte la lettre A en C4 sur Feuil2, il incrémente ma cellule AO2 dans l'onglet "Paramètres" du classeur.
Malheureusement, il ne fonctionne pas dès le premier clique, il est censé incrémenter dès respect de la condition et à chaque clique.
Il fonctionne très bien quand je réalise à partir de la deuxième fois jusqu'à fermeture du fichier. Mais quand je l'ouvre à nouveau et fait la première demande en cliquant dessus, ma cellule ne s'incrémente pas, je dois réaliser à nouveau une nouvelle fois pour que cela fonctionne.

Ce que je souhaiterai c'est à l'ouverture quand je fais la première demande dans ce formulaire en cliquant sur ce bouton "envoi de la demande" qu'il m'incrémente directement et qu'il n'attende pas que je fasse la deuxième et même manipulation pour qu'il le fasse.

Je ne sais pas si c'est à cause d'un autre code que j'ai fait qui fait que cela bloque.

Merci par avance de votre aide

Bien à vous

Benam
 
Dernière édition:

xUpsilon

XLDnaute Accro
Bonjour,

Déjà, première indication, pour alléger ton code à la lecture tu pourrais faire ceci :
VB:
If Worksheets("Feuil2").Range("C4") = "A" Then
   With Worksheets("Paramètres")
       .Range("AO2") = .Range("AO2") + .Range("AQ2")
   End With
End If
Ca t'éviterais d'avoir à retaper 120 fois le nom de la feuille (et le .Value est pas nécessaire aussi, la méthode Range te renvoie sa valeur par défaut).
Sinon, tu as essayé de stocker la valeur de C4 dans une variable et d'incrémenter ou non suivant cette variable, plutot que suivant la valeur de la cellule ?

Bonne continuation
 

BENAM69

XLDnaute Occasionnel
Bonjour,

Déjà, première indication, pour alléger ton code à la lecture tu pourrais faire ceci :
VB:
If Worksheets("Feuil2").Range("C4") = "A" Then
   With Worksheets("Paramètres")
       .Range("AO2") = .Range("AO2") + .Range("AQ2")
   End With
End If
Ca t'éviterais d'avoir à retaper 120 fois le nom de la feuille (et le .Value est pas nécessaire aussi, la méthode Range te renvoie sa valeur par défaut).
Sinon, tu as essayé de stocker la valeur de C4 dans une variable et d'incrémenter ou non suivant cette variable, plutot que suivant la valeur de la cellule ?

Bonne continuation

Salut xUpsilon

Je te remercie pour ton conseil et code.

J'ai trouvé la solution, j'ai ouvert un module, entré le code dans ce module et sur mon bouton Envoi de la demande j'ai appelé mon module avec la fonction Call

Merci

A+

Benam
 
Dernière édition:

Discussions similaires

Réponses
3
Affichages
173

Statistiques des forums

Discussions
311 720
Messages
2 081 915
Membres
101 837
dernier inscrit
Ugo