Résolu Formule matricielle avec données incrémentées par VBA

CaptainMerlux

XLDnaute Nouveau
Bonjour,

Je cherche une solution à un problème tout simple mais dont je ne trouve pas de réponse concrète sur les forums.

Dans une première feuille ("Chrono audit chantier") j'ai un tableau qui s'incrémente avec un userform grâce à des codes VBA. Voici les informations qui se trouve dans cette feuille :
- Colonne C : Les dates de réalisation d'inspection
- Colonne D : Les entreprises inspectées.

Dans une seconde feuille ("Entreprises Auditées"), je retrouve mes entreprises auditées en Colonne A et en Colonne B la date de la dernière date de réalisation d'inspection. Dans cette colonne B, j'ai rentré la formule matricielle suivante : =MAX(SI('Chrono Audit Chantier'!D$4:D$353=A5;'Chrono Audit Chantier'!C$4:C$353)).

Cette formule fonctionne si je rentre manuellement les dates dans la colonne C mais pas si elles s'incrémentent depuis mon userform.

Merci de votre aide.
 

CaptainMerlux

XLDnaute Nouveau
Voici le code VBA correspondant à la donnée date :

Private Sub Tb2_AfterUpdate()
On Error GoTo Messagerreur
Tb2 = Format(Tb2, "short date")
Exit Sub
Messagerreur:
MsgBox ("le format de la date n'est pas correct, le format de date doit être Jour/Mois/Année")
Tb2 = Empty

End Sub
 

Roblochon

XLDnaute Accro
Bonsoir,

Les lignes que vous nous donnez sont les lignes qui concernent la vérification après la saisie de la date, pas la manière dont vous l'enregistrez dans une cellule de feuille de calcul.

Exemple :

VB:
    If IsDate(tb2.Text) Then

        Sheets("Feuil1").Range("A1").Value = CDate(tb2.Text)

    End If
Cordialement
 

CaptainMerlux

XLDnaute Nouveau
J'ai essayé de mettre ta fonction à la suite de celle que je t'ai donné mais ça ne fonctionne pas. Dois je la mettre a la place ?
 

chris

XLDnaute Barbatruc
RE

Poste tout tont code sinon on n'avancera pas car de toute évidence tu ne maîtrises pas du tout VBA
 
Dernière édition:

CaptainMerlux

XLDnaute Nouveau
Merci Chris pour ton aide mais je pense qu'il y a des façons de dire les choses. Oui je ne maitrise pas VBA et j'apprends seul grâce au tuto internet et forum, donc merci d'avoir aussi un peu de respect pour ce genre de personne que je peux représenter.
Pour ce qui est de la diffusion des codes, je ne vais pas pouvoir, je travail sur un site protégé et les informations sont confidentiels, d'où mon problème pour trouver les solutions à mes blocages.
 

Staple1600

XLDnaute Barbatruc
Bonsoir le fil,

CaptainMerlux(Bienvenue sur le forum)
Où est l'irrespect? :rolleyes:
Constater qu'un membre du forum:
ne maîtrise pas...
manifeste un défaut de compétence...
est un newbie...
est un novice...
etc...
C'est simplement un constat
Ni plus, ni moins.

Et débutant ou pas, la première des choses qu'un membre du forum doit avoir comme compétence c'est de savoir lire ;)
Ce qui est bien utile pour retenir ce mantra:

Car se faisant, tu aurais joint un fichier exemple dès le premier message dans ce fil.
(Ce qui t'aurait éviter ce petit coup de sang ;))

EDITION: Bonsoir Chris ;)
 
Dernière édition:

chris

XLDnaute Barbatruc
RE
Bonjour Staple

Tu postes un code de formatage, je précise que le problème n'est pas là
Roblochon indique que c'est le code qui inscrit la valeur dans la cellule et donne un exemple pour te mettre sur la voie.
ce sont 2 actions différentes comme dans Excel la saisie et la mise en forme mais tu ne sembles pas saisir la nuance.

je conclus que tu es totalement perdu je demande tout le code pour pouvoir répondre de façon précise sans échanger 50 posts.

On a tous débuté et, pour nombre d'entre nous, sur le tas et avant que les forums n'existent...
 

CaptainMerlux

XLDnaute Nouveau
Bonjour Messieurs, passons la polémique et essayer d'avancer sur mon problème. Je vais essayer de vous aiguiller au mieux sans trop en dévoiler sur les informations confidentielles.

Voici le Code VBA de mon formulaire de Saisie d'Audit Chantier :
'***********************************************
'LEXIQUE
'***********************************************
'***********************************************
'***********************************************
'Tb1 = N°Chrono
'Tb2 = Date
'Tb3 = Entreprise
'Cb1 = Inspecteur n°1
'Cb2 = Inspecteur n°2
'Cb3 = Inspection conforme
'Cb4 = Inspection non conforme
'Cb5 = Arrêt de chantier
'************************************************
'************************************************
'************************************************

Private Sub Tb1_Change()

End Sub

'*******************************
'Saisie de la date
'*******************************
Private Sub Tb2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If Not ((KeyAscii > 46 And KeyAscii < 58)) Then
KeyAscii = 0
End If
End Sub

Private Sub Tb2_AfterUpdate()
On Error GoTo Messagerreur
Tb2 = Format(Tb2, "short date")
Exit Sub
Messagerreur:
MsgBox ("le format de la date n'est pas correct, le format de date doit être Jour/Mois/Année")
Tb2 = Empty

End Sub

Private Sub Tb2_Enter()
If Tb2 = "jj/mm/aaaa" Then
Tb2 = ""
End If
End Sub

Private Sub Tb2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Tb2 = "" Then
Tb2.Text = "jj/mm/aaaa"
End If
End Sub



'****************************************************************
'Commande pour revenir au formulaire de Gestion
'****************************************************************
Private Sub CbBack_Click()

Unload Me
AuditChnatier.Show

End Sub

'**********************************************************************
'Commande pour enregistrer formulaire dans le tableau
'**********************************************************************
Private Sub CbSave_Click()

Unload Me
AuditChantier.Show

'Recherche la prochaine ligne vide du tableau de suivi
Feuil5.Activate
Feuil5.Range("A1048576").End(xlUp).Offset(2, 0).Select
'Affectation des données du formulaire dans le tableau
ActiveCell(0, 1) = Me.Tb1
ActiveCell(0, 3) = Me.Tb2
ActiveCell(0, 4) = Me.Tb3
ActiveCell(0, 5) = Me.Cb1
ActiveCell(0, 6) = Me.Cb2
ActiveCell(0, 7) = Me.Cb3
ActiveCell(0, 8) = Me.Cb4
ActiveCell(0, 9) = Me.Cb5

End Sub


Je vais vous fournir des captures d'écran pour comprendre où il s'incrémente et où se trouve mon blocage.
1) Formulaire de Saisie des Audits Chantier rempli
2) Tableau Chrono des audits incrémentés par le formulaire
3) Tableau des Entreprises Audités par formule matricielle (ne fonctionne pas)
4) Tableau Chrono des audits incrémentés manuellement
5) Tableau des Entreprises Audités par formule matricielle (inchangé par rapport à photo 3, mais fonctionnelle)
 

Fichiers joints

CaptainMerlux

XLDnaute Nouveau
Re Chris,

Parfait merci beaucoup, la formule fonctionne du feu de dieu.

Je marque comme résolu merci
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas