Boucles imbriquées

jodeciters Messages postés 7 Date d'inscription vendredi 26 décembre 2008 Statut Membre Dernière intervention 16 mars 2009 - 26 déc. 2008 à 16:30
jodeciters Messages postés 7 Date d'inscription vendredi 26 décembre 2008 Statut Membre Dernière intervention 16 mars 2009 - 27 déc. 2008 à 14:44
bonjour, j'ai un souci sur une partie de code vba pour excel:
voici le pb: je dois imprimer des plannings individuels pour des stagiaires en formation. Chaque stagiaire a un planning particulier car aucun ne suit les mêmes modules de formation que les autres (choix de 1 à 6 modules).
Voici le code que j'ai réalisé:
Sub editdf2()
Dim Ligmenu As Integer
Dim Lig As Integer
Dim NbrLig As Integer
Dim NumLig As Integer
    For Ligmenu = 2 To 33 
    If Cells(Ligmenu, 3).Value <> "" Then              'liste des stagiaires - je coche oui dans la cellule
        If Cells(Ligmenu, 4).Value <> "" Then          'ligne du 1er module suivi par les stagiaires concernés
       
            Sheets("editdf").Activate ' feuille de destination
            Col = "F"                 ' colonne de la donnée non vide à tester
            'NumLig = 1
            With Sheets("editcompl")     ' feuille source
            NbrLig = .Cells(65536, Col).End(xlUp).Row   
                For Lig = 2 To NbrLig    ' il s'agit de copier toutes les dates de formation du module 1
                If .Cells(Lig, Col).Value = "DF1" Then
                .Rows(Lig).Copy
                 NumLig = NumLig + 1
                Cells(NumLig, 1).Select
                ActiveSheet.Paste
                End If
            Next
            End With
End IF
  Next
End Sub

j'ai limité le code au premier module parce que pour l'instant mon problème est que la boucle écrase à chaque fois la copie que je réalise sur la feuille "editdf" au lieu de copier en dessous.En fait je ne sais pas comment remplacer la variable NumLig 1 par NumLig première cellule vide de la colonne A.
Quelqu'un pourrait-il m'aider? merci

3 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
26 déc. 2008 à 17:49
Salut
Donc, ta question est "comment trouver la première cellule vide ?"
J'ai ouvert Excel, enregistré une macro dans laquelle j'ai fait "Edition", "Atteindre", "Cellule", "Cellule vide"
et le code associé est
    Range("A1").Select
    Selection.SpecialCells(xlCellTypeBlanks).Select
A toi de t'en inspirer pour récupérer la position de cette cellule

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
cs_Orohena Messages postés 577 Date d'inscription vendredi 26 septembre 2008 Statut Membre Dernière intervention 20 novembre 2010 4
26 déc. 2008 à 19:27
Bonjour jodeciters


Voici une alternative à la solution de Jack. Elle cherche la première cellule vide dans la colonne F et assigne son numéro de ligne à la variable NumLig.

    Dim r As Range
    Set r = Range("F1")
    Do Until r.Value = ""
        Set r = r.Offset(1, 0)
    Loop
    NumLig = r.Row

Amicalement
0
jodeciters Messages postés 7 Date d'inscription vendredi 26 décembre 2008 Statut Membre Dernière intervention 16 mars 2009
27 déc. 2008 à 14:44
Bonjour et merci pour vos réponses, le problème est résolu avec une solution proche des vôtres;en effet il suffisait de remplacer NumLig 1 par NumLig Sheets("editdf").Range("A65536").End(xlUp).Row
merci à vous.
0
Rejoignez-nous