verifier une cellule et boucle

wrndid

XLDnaute Occasionnel
bonjour
je voudrais verifier que le cellule est vide, aprés ecrire de la cellule vide a la cellule 33 , mai comme j ecrit dans ma cellule 7,33 la boucle est terminer
que faire merci


For a = 3 To 33
If Cells(7, 3).Value = "" Then
Cells(7, a).Value = Sheets(FNomDuMois$(i)).Cells(Z, a).Value
End If
If a = 33 Then
Z = Z + 1
End If
Next a
 

fhoest

XLDnaute Accro
Re : verifier une cellule et boucle

Bonjour
tu as un problème dans ta boucle pour ta condition de départ
tu vérifie que ta cellules (7,3)= rien la premiere fois et tu lui attribue la valeur sheet... tu passe une seul fois dans la condition car lors du premier passage a=3 donc tu remplis ta condition et les autres fois cells(7,3) n'est plus jamais différent de rien.
pour le problème du 33 pourquoi ne pas vérifier jusque 34 dans ta boucle??
A+
 

fhoest

XLDnaute Accro
Re : verifier une cellule et boucle

Re, si il est possible d'avoir le fichier pour comprendre cela serait plus simple car la pas grand chose,
Code:
For a = 3 To 33
' supprimer la condition If Cells(7, 3).Value = "" Then
Cells(7, a).Value = IIf(a <> 33, Sheets(FNomDuMois$(i)).Cells(Z, a).Value, Sheets(FNomDuMois$(i)).Cells(Z + 1, a).Value)
Next a
a tester
A+
bonjour pierrejean,j'ai louper la réponse précédente entre temps
 
Dernière édition:

wrndid

XLDnaute Occasionnel
Re : verifier une cellule et boucle

bonjour si ja bien comprit il faut ecrire ce
For a = 3 To 33
If (a <> 33, Sheets(FNomDuMois$(i)).Cells(Z, a).Value, Sheets
(FNomDuMois$(i)).Cells(Z + 1, a).Value)
If a = 33 Then
Z = Z + 1
End If
Next a

par contre il me dit erreur apres le 33 sur la virgule
merci
 

wrndid

XLDnaute Occasionnel
Re : verifier une cellule et boucle

bonjour
la ref c est la feuille de mars le bp commande 2 entrez numeros de semaine 9 ou 13 et recuperation des donnéé du mois precedent de la semaine a copier dans la feuille semaines
macro dans le module 10
merci
 

Pièces jointes

  • test.zip
    167.1 KB · Affichages: 50
  • test.zip
    167.1 KB · Affichages: 47
  • test.zip
    167.1 KB · Affichages: 47

wrndid

XLDnaute Occasionnel
Re : verifier une cellule et boucle

bonjour
la ref c est la feuille de mars le bp commande 2 entrez numeros de semaine 9 ou 13 et recuperation des donnéé du mois precedent de la semaine a copier dans la feuille semaines
macro dans le module 10 changer for a = 3 to 33
merci
Lien supprimé
 

fhoest

XLDnaute Accro
Re : verifier une cellule et boucle

bonsoir,
je viens de revenir du boulot et je voie que tu a une erreur :=
as tu mis exactement le meme code que je t'ai proposé,je ne pense pas.
copie le et colle le a la place de ce que tu m'a donner au départ:
de for a next
A+
Code:
Sub Extract_Sem()
Dim DateCherche, i&, J&, K&, L&
Dim TabReport(1 To 7, 1 To 31)
K = 0

Sheets("semaine").Cells(2, 3).Value = Application.ActiveSheet.Cells(2, 4).Value

DateCherche = InputBox("Veuillez saisir le numéro de semaine")
If DateCherche = 0 Or DateCherche = "" Then Exit Sub
If DateCherche < 1 Or DateCherche > 55 Then
    MsgBox "Merci de saisir un numéro de semaine valide"
    Exit Sub

End If
With ActiveSheet
    For i = 2 To 33
        If Format(DateSerial(Range("noan"), .Cells(2, 1), .Cells(i, 3)), "WW", vbMonday, vbFirstFourDays) = DateCherche Then
        K = K + 1
            For J = 1 To 31
                TabReport(K, J) = .Cells(i, J + 2)
            Next J
        End If
    Next i
   razsem
   efcouleur
End With
If K = 0 Then
    MsgBox "Cette semaine n'est pas présente sur cette feuille"
Else
    Sheets("semaine").Cells(3, 3).Resize(7, 31) = TabReport
    Sheets("semaine").Cells(1, 4).Value = "Semaines = " & DateCherche
    MsgBox "Semaine copiée"
End If

mois = Month(Range("c2"))
 
 i = mois
Z = 3

Annee = Range("noan")
J = FNbrDeJrDuMois(mois - 1, Annee) + 2



For a = 4 To 33
If Cells(5, 3).Value = "" Then
Cells(5, a).Value = Sheets(FNomDuMois$(mois - 1)).Cells(J, a).Value
End If
If a = 33 Then
J = J - 1
End If
Next a

For a = 4 To 33
If Cells(4, 3).Value = "" Then
Cells(4, 4).Value = Sheets(FNomDuMois$(mois - 1)).Cells(J, a).Value
End If
If a = 33 Then
J = J - 1
End If
Next a

For a = 4 To 33
If Cells(3, 3).Value = "" Then
Cells(3, a).Value = Sheets(FNomDuMois$(mois - 1)).Cells(J, a).Value
End If
If a = 33 Then
J = J - 1
End If
Next a


If Cells(6, 3).Value = "" Then
Cells(6, a).Value = Sheets(FNomDuMois$(i + 1)).Cells(Z, a).Value
End If
''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''''''''''''''''''''''''''''''''''''''
'ici le code modifié
For a = 4 To 33
Cells(7, a).Value = IIf(a <> 33, Sheets(FNomDuMois$(i + 1)).Cells(Z, a).Value, Sheets(FNomDuMois$(i + 1)).Cells(Z + 1, a).Value)
Next a

For a = 4 To 33
If Cells(8, 3).Value = "" Then
Cells(8, a).Value = Sheets(FNomDuMois$(i + 1)).Cells(Z, a).Value
End If
If a = 33 Then
Z = Z + 1
End If
Next a

For a = 4 To 33
If Cells(8, 3).Value = "" Then
Cells(9, a).Value = Sheets(FNomDuMois$(i + 1)).Cells(Z, a).Value
End If
If a = 33 Then
Z = Z + 1
End If
Next a

Code1_activate
impsem
SelectSurJourEnCours
End Sub
voici ta macro modifié avec le code que je t'ai donner
reste plus qu'a copier remplacer et tester dans ton fichier
ciao
 
Dernière édition:

Statistiques des forums

Discussions
312 398
Messages
2 088 062
Membres
103 711
dernier inscrit
amin Saadaoui