Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/09/2011, 10h06   #1
Invité de passage
 
Femme maite
animateur prévention
Inscription : septembre 2011
Messages : 6
Détails du profil
Informations personnelles :
Nom : Femme maite
Localisation : France

Informations professionnelles :
Activité : animateur prévention

Informations forums :
Inscription : septembre 2011
Messages : 6
Points : 0
Points : 0
Par défaut Etablir une liste dans une feuille selon un critère de date

Bonjour,

J'ai un programme qui fonctionne bien, et je voudrais le modifier.
J'ai un tableau reprenant le nom de personne ayant subi une formation avec les dates de ces formations. Maintenant je voudrais voir celle qui n'ont pas de date donc les cases vides.
Que dois-je écrire à la place de "date" dans mon programme pour avoir la liste des gens qui ne sont pas programmé à une formation. Merci d'avance.

Voilà mon programme :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Public Sub RECHERCHE()
 
Dim i, j, k As Integer
Dim Echeance, Today, Date_Formation As Date
 
Today = Date
Echeance = DateAdd("m", 1, Today)
k = 2
 
Worksheets("RESULTAT").Range("A2:C100").Select
Selection.ClearContents
 
For i = 2 To 500
    For j = 4 To 50
        If Not IsEmpty(Worksheets("LILLE").Cells(i, j).Value) Then
        Date_Formation = Worksheets("LILLE").Cells(i, j).Value
            If Date_Formation <= Echeance Then
                    Worksheets("RESULTAT").Cells(k, 1).Value = Worksheets("LILLE").Cells(i, 1).Value
                    Worksheets("RESULTAT").Cells(k, 2).Value = Worksheets("LILLE").Cells(1, j).Value
                    Worksheets("RESULTAT").Cells(k, 3).Value = Date_Formation
                    k = k + 1
            End If
        End If
    Next j
Next i
End Sub
orpheus111 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/09/2011, 14h40   #2
Invité de passage
 
Femme maite
animateur prévention
Inscription : septembre 2011
Messages : 6
Détails du profil
Informations personnelles :
Nom : Femme maite
Localisation : France

Informations professionnelles :
Activité : animateur prévention

Informations forums :
Inscription : septembre 2011
Messages : 6
Points : 0
Points : 0
Par défaut Merci

Pour la mise en page, je suis désolée, je ne connais absolument comment faire une mise en page sur le forum.
orpheus111 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/09/2011, 21h05   #3
Expert Confirmé Sénior
 
Avatar de jfontaine
 
Homme Jérôme FONTAINE
Contrôleur de Gestion
Inscription : juin 2006
Messages : 3 899
Détails du profil
Informations personnelles :
Nom : Homme Jérôme FONTAINE
Âge : 38
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Contrôleur de Gestion

Informations forums :
Inscription : juin 2006
Messages : 3 899
Points : 7 185
Points : 7 185
Bonjour,

Pour commencer, il faut savoir que quand tu déclares tes variables comme cela
seul k en integer, i et j sont de type Variant car non typée
Faire comme cela
Code :
Dim i as Integer, j as Integer, k As Integer
-----------------------------------------------------------------------

Citation:
Que dois-je écrire à la place de "date" dans mon programme pour avoir la liste des gens qui ne sont pas programmé à une formation. Merci d'avance.
Je présume que si une personne n'a pas de date, la cellule est vide
je commencerais par déclarer la variable Date_Formation en String au lieu de Date. Cela permettra l'affectation d'une chaine vide
Code :
Dim Date_Formation  as String
Si Worksheets("LILLE").Cells(i, j).Value est vide alors la recherche se fera sur les personnes sans formation

A toi de nous dire si cela fonctionne
__________________
Jérôme

Citation:
"Ils ne savaient pas que c'était impossible, alors ils l'ont fait" - Marc Twain
Si la réponse répond à votre besoin, votre vote nous encouragera.
Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
jfontaine est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h02.


 
 
 
 
Partenaires

Hébergement Web