Remplacer enregistrement si action existe [Résolu]

Signaler
Messages postés
10
Date d'inscription
lundi 9 mai 2011
Statut
Membre
Dernière intervention
12 août 2011
-
Messages postés
10
Date d'inscription
lundi 9 mai 2011
Statut
Membre
Dernière intervention
12 août 2011
-
Bonjour,

Le code suivant enregistre des données du formulaire Matrix vers la feuille SaveMatrix :
Dim i As Integer, FL1 As Worksheet
Set FL1 = Worksheets("SaveMatrix")
i = FL1.Range("A65536").End(xlUp).Row + 1
FL1.Cells(i, 1).Value = EditAction.IDAction
FL1.Cells(i, 2).Value = Matrix.CompilConse
FL1.Cells(i, 3).Value = Matrix.CompilFreq
FL1.Cells(i, 4).Value = Matrix.SafetyConse
FL1.Cells(i, 5).Value = Matrix.SafetyFreq
FL1.Cells(i, 6).Value = Matrix.EnviConse
FL1.Cells(i, 7).Value = Matrix.EnviFreq
FL1.Cells(i, 8).Value = Matrix.IntegrConse
FL1.Cells(i, 9).Value = Matrix.IntegrFreq
FL1.Cells(i, 10).Value = Matrix.SCEConse
FL1.Cells(i, 11).Value = Matrix.SCEFreq
FL1.Cells(i, 12).Value = Matrix.ImpactConse
FL1.Cells(i, 13).Value = Matrix.ImpactFreq
FL1.Cells(i, 14).Value = Matrix.MediaConse
FL1.Cells(i, 15).Value = Matrix.MediaFreq
FL1.Cells(i, 16).Value = Matrix.LevelCompil
FL1.Cells(i, 17).Value = Matrix.LevelCompil2
FL1.Cells(i, 18).Value = Matrix.LevelSafe
FL1.Cells(i, 19).Value = Matrix.LevelSafe2
FL1.Cells(i, 20).Value = Matrix.LevelEnvi
FL1.Cells(i, 21).Value = Matrix.LevelEnvi2
FL1.Cells(i, 22).Value = Matrix.LevelIntegr
FL1.Cells(i, 23).Value = Matrix.LevelIntegr2
FL1.Cells(i, 24).Value = Matrix.LevelSCE
FL1.Cells(i, 25).Value = Matrix.LevelSCE2
FL1.Cells(i, 26).Value = Matrix.LevelImpact
FL1.Cells(i, 27).Value = Matrix.LevelImpact2
FL1.Cells(i, 28).Value = Matrix.LevelMedia
FL1.Cells(i, 29).Value = Matrix.LevelMedia2
FL1.Cells(i, 30).Value = Matrix.ResultCompil
FL1.Cells(i, 31).Value = Matrix.ResultSafe
FL1.Cells(i, 32).Value = Matrix.ResultEnvi
FL1.Cells(i, 33).Value = Matrix.ResultIntegr
FL1.Cells(i, 34).Value = Matrix.ResultSCE
FL1.Cells(i, 35).Value = Matrix.ResultImpact
FL1.Cells(i, 36).Value = Matrix.ResultMedia
FL1.Cells(i, 37).Value = Matrix.FinalResult
Matrix.IDAction.Caption = EditAction.IDAction.Caption

Je voudrais savoir comment faire pour remplacer l'enregistrement si IDAction (numéro de l'action) existe déja dans la feuille.
Pour le moment sa ne fait que rajouter une ligne.

Merci de votre aide

4 réponses

Messages postés
10
Date d'inscription
lundi 9 mai 2011
Statut
Membre
Dernière intervention
12 août 2011

C bon j'ai trouvé, voici le code pour ceux que sa peut aider :

Il faut remplacer :
i = FL1.Range("A65536").End(xlUp).Row + 1
par

With FL1
On Error Resume Next
Set Mytitle = .Columns("A:A").Find(What:=EditAction.IDAction, LookAt:=xlWhole)
If Mytitle Is Nothing Then
i = .Range("A65536").End(xlUp).Row + 1
Else
.Range(Mytitle.Row, Mytitle.Row + 37).ClearContents
i = Mytitle.Row
End If
On Error GoTo 0
End With


Voila
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
70
Salut

Il faut d'abord faire une recherche de cet IDAction.
Voir ma http://www.vbfrance.com/forum/sujet-REMPLIR-FORMULAIRE-AVEC-DONNEES-CONTENUES-DANS-FEUILLE-EXCEL_1519613.aspx à ce sujet

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
10
Date d'inscription
lundi 9 mai 2011
Statut
Membre
Dernière intervention
12 août 2011

Re

Je ne vois pas comment tu fais pour voir si l'action existe (je dois pas bien voir sans doute)
J'aimerais aussi savoir comment on fait pour remplacé la ligne quand elle existe

Pour répondre à tes questions ,formulaire c'est des user form et mes données sont stockées en lignes et les champs en colonne

Merci
Messages postés
10
Date d'inscription
lundi 9 mai 2011
Statut
Membre
Dernière intervention
12 août 2011

Bonjour,

Quelqu'un aurait-il une solution car là je suis un peu perdu ?

Merci