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

Autres Affectation à une cellule

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

FOUQUET Yves

XLDnaute Occasionnel
Bonjour,

Quelqu'un peut me dire pourquoi dans les lignes ci dessous
avec la variable "ligne1" il ne m'écrit rien dans la cellule
et avec un nombre il écrit bien "OUI" dans la cellule!
Et pourtant au débogueur il passe bien sur la ligne de code...

Je craque.

merci d'avance
Yves


VB:
Private Sub commandbutton2_Click()
Dim PathName As String
Dim i As Integer
Dim ligne1 As Integer

ligne1 = 1
Sheets("Effectif").Activate
Set Ws = Sheets("Effectif")                                               '--- comparer nom et prenom ---
For j = 2 To Ws.Range("B" & Rows.Count).End(xlUp).Row

ligne1 = ligne1 + 1                                                          ' --- saute la ligne de titre ---
nom_effectif1 = Sheets("effectif").Range("B" & j)           ' récupère nom dans la liste effectif

If nom_effectif1 = UserForm9.nom Then
prenom_effectif1 = Sheets("effectif").Range("C" & j)
      If prenom_effectif1 = UserForm9.prenom Then
      relance = "OUI"
    Range("O" & ligne1).Value = relance
          '  Range("O" &15).Value = relance                                 et là ça marche!!!
     Exit For
     End If
End If
Next
End sub
 
Bonjour,

A vue de nez, comme il n'y a pas de classeur exemple je dirais:

VB:
Private Sub commandbutton2_Click()
    Dim PathName As String
    Dim i As Integer
    Dim ligne As Long, derLigne As Long
    Dim Nom_effectif As String, Prenom_effectif As String
    With Sheets("Effectif")
        .Activate
        derLigne = .Range("B" & Rows.Count).End(xlUp).Row                             '--- comparer nom et prenom ---
        For ligne = 2 To derLigne                                                         ' --- saute la ligne de titre ---
            Nom_effectif = .Range("B" & ligne)           ' récupère nom dans la liste effectif
            Prenom_effectif = .Range("C" & ligne)
            If nom_effectif = Me.nom And Prenom_effectif = Me.prenom Then
                .Range("O" & ligne) = "OUI"
                Exit For
            End If
        End If
    Next
End Sub

Les variables Nom_Effectif et Prenom_Effectif ne sont pas indispensables. Le test pourrait être :
If .Range("B" & ligne) = Me.nom And .Range("C" & ligne) = Me.prenom Then
....
End if

J'ai supposé que cette macro était une macro du UserForm9 aussi ai-je remplacé sont nom par Me (variable objet représentant le UserForm parent des contrôles)

Bonne continuation
 
Merci de la réponse. Je précise le problème.
J'envoie un mail de relance à des "effectif" de'une feuille.
Pour cela je trie les "effectif" par année de dernière cotisation dans une nouvelle feuille "rappel_c" .
Le trie se fit dans UserForm9, car c'est là que l'on choisit l'année à trier. J'ai donc en sortie du trie une nouvelle feuille avec juste les personnes concernées par l'année saisie.

Ensuite je choisis individuellement dans cette nouvelle feuille les personnes triées à qui j'envoie le mail..
Cela se fait dans Userforme10.
La personne est sélectionnée dans un combobox. puis une procédure Outlook.

Quand je relance par mail,une de ces personnes triées je doit marquer dans "effectif" initial que je les ai déjà relancés d'ou le passage de "NON" à "OUI".
Donc je compare le nom et prénom "variables publiques" de la nouvelle feuille "rappel_c" afin de retrouver dans "effectif" la personne concernée par l'envoi du mail et là je passe la cellule de contrôle à "OUI".

En sortie de procédure je delete la nouvelle feuille crée en entrée "rappel_c".

Conclusion: pour l'année XXXX sélectionnée dans Userform9, je sélectionne des personnes que je stocke dans une nouvelle feuille élève "rappel_c".
A partir de cette nouvelle feuille j'envoie un mail à qui je veux et pour savoir que je leur ai envoyé le mail je les passe de NON à OUI dans la feuille maître initiale "effectif".
Et c'est à cette comparaison que je ne vois pas pourquoi cela fonctionne avec un nombre et pas avec une variable contenant ce nombre!
 
Ca y est j'ai trouvé l'erreur. Cela venait des variables publiques qui n'avaient pas lieu d'être. Je n'avais qu'à comparer des variables dans le même Userform10.
C'est toujours pareil, on laisse tomber quelques temps et quand on y retourne les choses sautent au yeux.
merci tout de même d'avoir répondu.
A la prochaine.
Yves
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
579
Réponses
3
Affichages
265
Réponses
4
Affichages
671
Réponses
1
Affichages
264
Réponses
2
Affichages
329
Réponses
5
Affichages
702
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…