Problème dans une boucle

  • Initiateur de la discussion Initiateur de la discussion soffy
  • Date de début Date de début

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 !

S

soffy

Guest
Bonjour,

Je me suis lancée à écrire une boucle et ça ne marche pas. Le déboggueur me dit Next sans For 😱
Quelqu'un pourrait-il m'expliquer mon erreur ?


Public Sub RXlibre()
Dim c As String
For i = 3 To 23
With Sheets("PLANNING").Cells(5, i) 'recherche dans le feuille planning ligne 5 de 3 à 23
c = .Find(ComboBox1)
If Not c Then
MsgBox "c est libre"
Exit Sub
End If
Next
End Sub

Je suis pas sûr d'avoir correctement écrit pour que la valeur c sorte dans le message 😎
Par avance merci
Sophie
 
Re : Problème dans une boucle

re:

Public Sub RXlibre()
Dim c As String
For i = 3 To 23
With Sheets("PLANNING").Cells(5, i) 'recherche dans le feuille planning ligne 5 de 3 à 23
c = .Find(ComboBox1)
If Not c Then
MsgBox "c est libre"
Exit Sub
End If
Next
End Sub

devient
Public Sub RXlibre()
For i = 3 To 23
if Sheets("PLANNING").Cells(5, i) <> combobox 1 then
MsgBox Sheets("PLANNING").Cells(5, i) & " est libre"
Exit for
End If
Next
End Sub

si j'ai bien compris ce que tu désires (je ne comprend pas le .find sur une seul cellule)

set C = sheets("PLANNING").range("C" & i & ":W" & i).find(combobox1)
if not c is nothing then

m'enfin je ne suis pas familier de find
 
Re : Problème dans une boucle

Bonjour Wilfried

Merci de ta réponse. Cette procédure fonctionne mais ne me renvoie pas les absents c'est à dire ceux qui sont nommés dans la combobox mais pas dans ma ligne 5 .🙁 .

Public Sub RXlibre()
For i = 3 To 23
If ComboBox1 <> Sheets("PLANNING").Cells(5, i) Then
MsgBox Sheets("PLANNING").Cells(5, i) & " est libre"
Exit For
End If
Next
End Sub

quand à
set C = sheets("PLANNING").range("C" & i & ":W" & i).find(combobox1)
if not c is nothing then

j'ai un message d'erreur sur c : incomptabilité de type. 🙁

Sophie
 
Re : Problème dans une boucle

Merci Wilfried de t'intéresser à mon cas . 😀

Ci-joint le fichier zip.
En fait ce que je veux faire c'est avoir la liste des gens qui ne travaillent pas par journée c'est à dire dans chaque ligne.
D'abord et c'est le propos de cette demande je cherchais la procédure pour l'obtenir pour une ligne.
Ensuite je veux créer une boite de dialogue qui permettra à l'utilisateur de demander pour la ligne qui l'intéresse.
Voilà mon projet. 🙂

Sophie
 

Pièces jointes

Re : Problème dans une boucle

Bonsoir soffy, wilfried_42, bhbh

Vendredi, Bebere a répondu à une question assez similaire sur ce fil.
https://www.excel-downloads.com/threads/verification-manquant-sur-une-liste.76871/

J'ai honteusement repris son code et ajouté une InputBox pour choisir le N° de la ligne.
Les agents ne travaillant pas sont listés dans une msgbox.

Code:
Public Sub RXlibre()
Dim ListeRX As Variant, ListePLANNING As Range, ListeAbsent() As String
Dim j As Integer, i As Integer, k As Integer, Cel As Range, List
Dim lign
lign = Application.InputBox("Entrez un N° de ligne compris entre 5 et 39", "Choix de la ligne", Type:=1)
If lign = 0 Then Exit Sub
If lign < 5 Or lign > 39 Then
  MsgBox "Saisir un nombre entre 5 et 39.", vbCritical, "Attention:"
  Exit Sub
End If
With Sheets("RX")
  ListeRX = .Range("E6:E" & .Range("E65536").End(xlUp).Row)
End With
With Sheets("PLANNING")
  Set ListePLANNING = .Range("C" & lign & ":" & "W" & lign)
End With
For i = LBound(ListeRX) To UBound(ListeRX)
  Set Cel = ListePLANNING.Find(ListeRX(i, 1))
    If Cel Is Nothing Then
       ReDim Preserve ListeAbsent(j)
       ListeAbsent(j) = ListeRX(i, 1)
       j = j + 1
    End If
Next i
On Error GoTo fin
For k = LBound(ListeAbsent) To UBound(ListeAbsent)
 List = List & ListeAbsent(k) & vbCrLf
Next
MsgBox "Les agents suivants ne travaillent pas :" & vbCrLf & vbCrLf & List
Exit Sub
fin:
If Err = 9 Then MsgBox " Tout le monde travaille"
End Sub

Ca devrait correspondre à ce que tu souhaites.

Bonne nuit
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
15
Affichages
784
Réponses
8
Affichages
780
Réponses
5
Affichages
910
Réponses
10
Affichages
661
Retour