debutant en VBA et besoin d aide

christophe62

XLDnaute Nouveau
Salut

Je suis en train de me faire un fichier pour gérer la location d'un appartement et j'ai trouvé que le systeme VBA etait pas mal du tout

je vous joint le fichier Excel que j'ai réalisé ( et mes début en VBA dedans ) " pas peu fière pour une 1ere "

Ce que je n'arrive pas a faire ou a trouver :

* actuellement incrémentation de mon formulaire se fait par le haut
la ligne existante descend pour laisser la place au nouveau client
Je voudrais l inverse, que le nouveau client vient en dessous du premier

* je cherche a ce que la ligne créée s’incrémente de 1 ( colonne A ) afin d avoir un numéro de client

* dans les colonnes grises , est ce que je peux mettre des formules qui se calculerons des que la ligne sera rempli avec le formulaire ?

J’espère être assez clair dans ma demande, car je fatigue ce soir

En tout cas merci de votre aide que vous voudrez bien m'apporter
 

Pièces jointes

  • LOCATION1.xlsm
    29.1 KB · Affichages: 83

thebenoit59

XLDnaute Accro
Bonjour Christophe, Lone-Wolf, le fil (je n'ai pas tout parcouru ...)

Pour ton erreur, il faut remplacer les "." par des "/" pour obtenir un format Date te permettant d'utiliser DateDiff :

VB:
NbJours = DateDiff("d", Replace(TextBox4, ".", "/"), Replace(TextBox5, ".", "/"))
 

christophe62

XLDnaute Nouveau
maintenant un autre problème que je pige pas

dans la feuille courrier de réservation je veux faire un courrier avec des rechercheV

ex en case G2 le n° de client a taper

en case A4 le résultat

je fais la formule suivante : RECHERCHEV(G2;'enregistrement clients'!A1:V21000;3)

et bien ça fonctionne pas:mad::(

c'est le codage qui fait ça ou quoi ? :eek:
 

christophe62

XLDnaute Nouveau
Qu'on le fasse avec l ID ou avec le n° de client
ca ne fonctionne pas

et c'est ca que je pige pas

c'est pas du au fait que si on a un meme client on a par ex 3 fois le même n° de client ?

car avec un des fichiers des versions précédentes, il y a un n° de client par ligne meme si le client est présent plusieurs fois et la ca fonctionne
 
Dernière édition:

thebenoit59

XLDnaute Accro
Il n'y a aucun rapport de codage ici.
La formule fonctionne parfaitement chez moi, je ne vois pas pourquoi ça en serait différent pour toi.
As-tu entré un numéro de client existant ?
Si tu as plusieurs fois le même client, cela sortira le premier client trouvé.
 

Pièces jointes

  • LOCATIONS.xlsm
    58.1 KB · Affichages: 47

christophe62

XLDnaute Nouveau
c'est bon ouf ça rentre dans l'ordre comme dirait l'autre

sinon 2 questions.
Est il possible de mettre les dates en 12/07/2016 plutôt que 12.07.2016 ( version français plutôt que Suisse) dans l enregistrement des tableaux
Est il possible d'avoir plutôt un n° de client par ligne et non pas un numéro de client par client identique :oops:
 

Lone-wolf

XLDnaute Barbatruc
Oui, mais ça c'est fastoche comme dirait celui-là ;)

pour les celulles > format personnalisé> jj/mm/aaaa.

Et pour les texboxs: textbox12 = format(cells(lig, 7), "dd/mm/yyyy")

Pour les clients. Il y a la feuille clients qui fait cela. Et réféchi un petit peu, si le client viens 2 voir 3 fois durant l'année comment veux-tu avoir qu'une seule ligne???o_O

Notes: quand on commence une base de données, on crée un tableau client(nom prénom adresse etc.), un tableau de type de location, un tableau de lignes de commandes(les doublons avec types de locations, dates etc.) et un tableau commandes clients pour faire les fiche commandes, factures etc.(en doublons aussi puisque les types et dates changent, et non quasiment tout en un bloc comme tu l'as fait.

Un exemple en PJ
 

Pièces jointes

  • La Gondolière.zip
    4.8 MB · Affichages: 61
Dernière édition:

thebenoit59

XLDnaute Accro
Pour modifier rapidement les dates :

1. Appliquer le format Date Courte aux colonnes intéressées, dans chaque feuille.
Ensuite sélectionner les dates et utiliser la procédure suivant :
VB:
Sub Dates()
For Each cell In Selection
    cell.Value = CDate(Replace(cell.Value, ".", "/"))
Next cell
End Sub

2. Dans l'UserForm, supprimer les lignes
VB:
 coldate =
VB:
 format = (coldate, "dd.mm.yyyy")

3. Comme le dit Lone-Wolf, il serait dangereux pour toi d'avoir un numéro de client par ligne.
Il vaudrait mieux travailler en numéro de réservation et conserver l'ID pour chaque client, tu pourras ainsi ressortir toutes les réservations selon l'ID.
 

Lone-wolf

XLDnaute Barbatruc
Re

Regarde la PJ pour avoir une idée, j'ai supprimer les macros, modules et formulaires, sinon trop lourd. Ici c'est le numéro de commande qui permet de retrouver les infos et pouvoir faire ainsi les bons de commande, bulletins de livraisons et factures.
 

Discussions similaires

Statistiques des forums

Discussions
312 100
Messages
2 085 290
Membres
102 851
dernier inscrit
didine501