Macro VBA: Insérer des données au bon endroit en fct d'une date

marrama

XLDnaute Nouveau
Bonjour à tous,

Je présente ma situation:

J'ai un classeur avec 12 Feuilles, 1 pour chaque mois.

Dans ces feuilles chaque jour est mergé sur 5 colonnes de la sorte:

Samedi 31 Janvier
Référence - Acheteur - Marque - Prix - Commercial

Je voudrais réaliser une macro VBA qui demande, lors d'un clic bouton, la référence, l'acheteur , la marque, le prix, le commercial (parmi Jean, Pierre, Simon ou Myriam) et bien sur, la date.

les valeurs seront alors insérées au bon endroit suivant la date rentrée.

PS: la macro doit permettre plusieurs ventes possibles par jour.

Merci infiniment aux personnes qui voudront bien m'aider.

le fichier Excel: Ce lien n'existe plus
 

jp14

XLDnaute Barbatruc
Re : Macro VBA: Insérer des données au bon endroit en fct d'une date

Bonsoir

Ci joint le fichier avec des procédures pour réaliser la fonction demandée.

J'ai rajouté une feuille BDD qui contient des informations à compléter.

A tester

JP
 

Pièces jointes

  • Agenda_Autov3.zip
    38.4 KB · Affichages: 85

marrama

XLDnaute Nouveau
Re : Macro VBA: Insérer des données au bon endroit en fct d'une date

Merci beaucoup jp tu fais un super boulot.
Par contre deux petites choses:

1)
Parfois, alors que je saisis 5 ventes, il n'en prend que 3 ou 4.
Ensuite je peux saisir uniquement 1 vente pour les autres jours. Si j'en saisi plusieurs, elles ne s'affichent pas.

Ex: le 1 Jan 3 ventes, le 2 Jan 3 ventes, le 3 Janv 2 ventes.

Sur cet exemple il va saisir 2 ventes uniquement pour le 1er, 1 vente pour le 2 Jan et 1 vente pour le 3 Jan.

2)
Serait il possible que lorsqu'on change de jours, la ligne de la vente se positionne automatiquement au bon endroit directement sous les titres si c'est libre (sinon sous la dernière vente du jour) et non par rapport à la vente du jour précédent. (oula j'espère être clair)

Merci encore ;)
 

marrama

XLDnaute Nouveau
J'ai suis pratiquement arrivé à ce que je voulais grâce à vous.
Mais la je bloque sur un truc tout bête. Je voudrais ajouter une Bordure gauche seulement si la cellule de la colonne précédente est vide.

Ça marche partout sauf pour la colonne A, lors du test ça bug ( évidemment car il n'y a pas de colonne avant A)

J'ai donc rajouté une condition "Si la colonne est différente de A" mais cela ne marche pas

Code:
 If .Cells(Derlign, Col).Column <> "A" Then
      If IsEmpty(.Cells(Derlign, Col - 1)) Then
      .Cells(Derlign, Col).Borders(xlEdgeLeft).Weight = xlThin
      End If
    End If

Merci :)
 
Dernière édition:

kjin

XLDnaute Barbatruc
Re : Macro VBA: Insérer des données au bon endroit en fct d'une date

bonsoir,
Pourqui ne pas juste tester la valeur de la variable "Col" ?!
Code:
If Col > 1 Then
      If IsEmpty(.Cells(Derlign, Col - 1)) Then
        .Cells(Derlign, Col).Borders(xlEdgeLeft).Weight = xlThin
      End If
End If
A+
kjin
 

jp14

XLDnaute Barbatruc
Re : Macro VBA: Insérer des données au bon endroit en fct d'une date

Bonjour

Ci joint une nouvelle version
J'ai rectifié le problème de l'écriture.
J'utilise la zone référence pour déterminer la ligne à écrire.
Cette zone doit être remplie, d'où le message.

Pour retrouver l'onglet il faut passer par une table (onglet BDD)
extrait de l'aide vba
'mmm Affiche le nom complet des mois (il n'existe pas de forme abrégée pour les les noms des mois Hijri).

Au niveau de l'userform2 le controle DTPicker indique la date de la cellule active dans le calendrier.


A tester

JP
 

Pièces jointes

  • Agenda_Autov4b.zip
    48.4 KB · Affichages: 75

Membres actuellement en ligne

Statistiques des forums

Discussions
312 321
Messages
2 087 266
Membres
103 501
dernier inscrit
talebafia