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

Autres Affectation à une cellule

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
 

Hasco

XLDnaute Barbatruc
Repose en paix
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
 

FOUQUET Yves

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

FOUQUET Yves

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

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…