VBA Excel : 3 problèmes !!!

Fermé
m-ln - 26 nov. 2007 à 21:04
 m-ln - 27 nov. 2007 à 13:46
Bonjour,

n'étant pas une pro de VBA (je me débrouille sur certaines choses...) je sollicite votre aide sur plusieurs points :


PB 1
dans une colonne, j'aimerais récupérer le résultat d'une opération réalisée sur deux colonnes.
cad :
j'ai une colonne avec une date de fin de contrat, une colonne avec une durée de préavis (en mois).
et dans une colonne, j'aimerais récupérer le résultat : date de fin de contrat-préavis

que faut-il rajouter pour gérer les cellules vides ?


Voici ce que j'ai fait:

Sub date_preavis()

Dim c As Range
Dim delais2 As Date


i = 2

For Each c In Range(("AA" & i), Range("AA" & i).End(xlDown))

delais2 = Range("N" & i).Value - (Range("O" & i).Value * 30) 'pour convertir le mois en jours
Range("AA" & i).Value = delais2

If Date = delais2 Then
MsgBox ("Attention preavis pour " & Cells(i, 1).Value)
End If

Exit For
Next

End Sub




PB2:

Lien hypertexte vers un fichier PDF.

A l'aide d'une macro j'ai attribué des liens hypertextes vers des fichiers PDF.
Cependant lorsque je clique sur le lien, l'application Adobe s'ouvre et se referme aussitôt sans avoir eu le temps de voir le fichier: où est le pb ?



PB 3:

Création d'un formulaire permettant l'ajout de données.
comment gérer les types (integer, date, long....) dans la saisie ?

ex : lorsque je saisis une donnée qui n'est pas un nombre : comment créer un message d'alerte (par ex : ceci n'est pas un nombre ?)
en fait quelle est la syntaxe pour comparer les types de données ?

comment imposer un format de date : dans mon cas, jj/mm/aaaa ?


J'espère avoir été assez claire et que quelqu'un pourra m'aider.

M-LN
A voir également:

2 réponses

eriiic Messages postés 24582 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 8 juin 2024 7 222
26 nov. 2007 à 23:53
Bonsoir,

Hé bé !!! tout ça ?
Tu aurais peut-être dû faire 3 post car trier les réponses ça va être coton pour toi, et dans 3 jours pas sûr que tout le monde lise tout pour savoir ce qui est résolu et ne l'est pas.

Allez, PB3 pour commencer:
Dans les contrôles de bases tu n'as guère que la zone de texte pour les saisies. Donc ça te retourne une chaine et rien d'autre. C'est à toi d'analyser la saisie, de voir si ça correspond à un nombre et le type (long, integer,..) sera celui que tu auras donné à ta variable. Tu as des fonctions de conversion comme CInt, CLng, CSng, CDate etc
Pour la date le mieux sans doute est d'ajouter un contrôle calendrier comme 'microsoft Date and Time Picker' ou équivalent. Clic-droit sur la boite des contrôles et 'contrôles supplémentaires...'. C'est plus simple pour l'utilisateur et pour toi, tu auras une date correcte et bien formatée.

PB1
Pas sûr d'avoir compris ta question car ça me parait simple:
If delais2 <>"" then ' ou test plus complet pour contrôler que ça corresponde bien à une date valide
ton traitement
end if
Par contre je ne te vois pas récupérer la date de fin de contrat...
et If Date = delais2 me parait plus que bizarre
Date est une fonction qui te retourne la date du jour, que tu compares à un nombre de jours...

Ca suffira pour ce soir ;-)
Bon courage

eric
0
Bonjour

merci de tes réponses
Je crois que je vais suivre ton conseil je vais faire 3 posts pour avoir un peu plus de réponses....
0