jodeciters
Messages postés7Date d'inscriptionvendredi 26 décembre 2008StatutMembreDernière intervention16 mars 2009
-
26 déc. 2008 à 16:30
jodeciters
Messages postés7Date d'inscriptionvendredi 26 décembre 2008StatutMembreDernière intervention16 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
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 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)
cs_Orohena
Messages postés577Date d'inscriptionvendredi 26 septembre 2008StatutMembreDernière intervention20 novembre 20104 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
jodeciters
Messages postés7Date d'inscriptionvendredi 26 décembre 2008StatutMembreDernière intervention16 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.