format de cellule excel [résolu] - VB/VBA/VBS - Programmation
Marsh Posté le 26-10-2005 à 18:06:17
bonsoir,
La fonction IsDate renvoie la valeur True si l'expression est une date ou peut être reconnue en tant que date.
Sub test()
If Not IsDate(ActiveCell) Then MsgBox ActiveCell
End Sub
A+
Marsh Posté le 26-10-2005 à 18:36:59
J'espère que ça t'ira :
Dim Rng As Range
Dim j As Integer
Dim EnfOfCells As Integer
EndOfCells = 50
j = 0
Set Rng = Range("A1" )
For i = 0 To EndOfCells
Rng = Rng.Offset(1)
Rng.Offset(i, j).Select
If IsDate(Rng.Offset(i, j).Value) Then 'NumberFormat = "m/d/yyyy" Then
Rng.Offset(i, j + 2).Value = "Ici c'est une date "
Else
If LCase(Rng.Offset(i, j).Value) = LCase("En cours" ) Then
Rng.Offset(i, j + 2).Value = "Ici c'est En cours"
Else
If Rng.Offset(i, j).Value = "" Then Rng.Offset(i, j + 2).Value = "Ici c'est Vide ! "
End If
End If
Next i
@+
Marsh Posté le 26-10-2005 à 18:39:20
OUi, tu as soit :
Range.NumberFormat pour tester ( mais pas top si tu as déjà eu une date à la place )
Soit la fonction IsDate(Range("Ax" )
@+
Marsh Posté le 26-10-2005 à 18:51:41
Salut ici amsterdam même si ça ne se voit pa trop bien pour l'instant ( problème de mot de passe qui ne passe plus).
Je vais tester tout ça et je vous dirait ce qu'il en est.
Merci et @+
Marsh Posté le 27-10-2005 à 17:20:30
C'est bon ça fonctionne.
Enfin j'ai quand même ajouté un variable pour faire le test dessus mais c'est plus lié à l'état de mon code on va dire.
Par contre petite question en passant, comment lui dire de bosser sur une autre feuille du classeur ?
Car j'ai fait le test sur une petite liste de dates sur la même feuille que le graphique mais en fait les vraies données sont sur la feuille2.
Marsh Posté le 05-11-2005 à 11:31:48
Il suffit de se positionner sur la feuille avec sheets..
Ici les date sont sur la feille2 et le résultat sur la feuille1
Citation : Dim Rng As Range |
Marsh Posté le 25-09-2007 à 10:22:26
Bonjour à tous, et excusez moi de réveiller un sujet resté longtemps inactif. Mais j'ai un problème que je n'arrive pas à regler facilement.
J'ai deux feuilles "feuil13 ET "feuil2".
feuil2 est composéde 4 colonnes:
nom, code, date et prix
de même la feuil1 est composée de 4 colonnes nom, code, date et prix.
Si un correspondant du code dans feuil2 est trouvé dans feuil1 alors la colonne 5 de feuil1 est mise à jour par le prix correspondant de feuil2. Sinon une ligne est rajoutée à la fin de la feuil1 avec les les informations de la feuil2 disposées d'une certaine manière.
Sur un autre forum on m'a aidé par le code suivant qui fait presque tout sauf la partie où le résultat du "SI" est positif.
Dim wksProj As Worksheet 'Feuille ¨projet
Dim wksCde As Worksheet 'Feuille Commande
Dim strNom As String 'Valeur à chercher
Dim rDest As Range ' Plage de recherche
Dim rSource As Range
Dim val As Variant
Dim c As Range
Dim cName As Range
Set wksProj = Sheets("feuil1" )
Set wksCde = Sheets("feuil2" )
Set rSource = Range(wksCde.Cells(1, 2), wksCde.Cells(65535, 2).End(xlUp))
wksProj.Select ' pour parcourir les codes à chercher
For Each cName In rSource
strNom = cName.Value 'Récupere la valeur à chercher
Set rDest = wksProj.Range("B:B" )
Set c = rDest.Find(strNom)
If c Is Nothing Then
wksProj.Cells(65535, 2).End(xlUp).Offset(1, -1) = cName.Cells(1, 0)
wksProj.Cells(65535, 2).End(xlUp).Offset(1, 0) = cName.Cells(1, 1)
wksProj.Cells(65535, 2).End(xlUp).Offset(0, 2) = 100
wksProj.Cells(65535, 2).End(xlUp).Offset(0, 3) = cName.Cells(1, 3)
Else
cName.Offset(0, 2).Copy c.Offset(0, 3)
End If
Next cName
la ligne cName.Offset(0, 2).Copy c.Offset(0, 3) ne fait pas ce que j'ne attends. Quelqu'un peut m'aider à dire où se trouve le bug? Merci.
la feuil2 est parcouru et pour chaque code de feuil2, une recherche est faite dans feuil1.
Si le code corrsepondant est trouvé dans feuil2 alors
Marsh Posté le 25-09-2007 à 14:12:36
Voilà ce qu'on appelle un arrêt brutal !!
....mais quel suspens !!!
Alors quoi ? il se passe quoi après...
va-t-il falloir attendre une semaine entière avant d'avoir la suite ?
Marsh Posté le 26-10-2005 à 17:25:53
Bonjour, voilà mon problème.
J'ai une colonne remplie de cellules contenant des dates que je doit récupérer, jusque là ça va.
Par contre certaines cellules contiennent le texte "en cours" et ça me pose problème.
Est-il possible de vérifier le type de donnée contenu dans la cellule pour pouvoir mettre une gestion d'erreur en place ?
J'ai réussi à régler le cas des lignes vides mais là je sèche et mon bouquin de poche n'a sans doute pas toutes les informations.
Si qqun a une idée.
Merci d'avance.
Message édité par amsterdam le 27-10-2005 à 17:31:26