Conserver formule apres formulaire
Bonjour le forum voila j'utilise un formulaire pour gerer ma base de données sauf que lorsque j'ajoute ou modifie un contact le formulaire marche mais enleve mes formules excel. (ex: je fais la somme de ma colonne A )
Existe t il un moyen de bloquer ses formules tout en pouvant visualiser le résultat dans une textbox ?
Merci pour vos idées
Option Explicit
Dim Ws As Worksheet
Private Sub CommandButton6_Click()
On Error Resume Next
Me.MultiPage1.Value = Me.MultiPage1.Value - 1
End Sub
Private Sub CommandButton7_Click()
On Error Resume Next
Me.MultiPage1.Value = Me.MultiPage1.Value + 1
End Sub
Private Sub MultiPage1_Change()
End Sub
Private Sub UserForm_Initialize()
Dim J As Long
Dim I As Integer
ComboBox2.ColumnCount = 1
ComboBox2.List() = Array("OUI", "NON", "")
Set Ws = Sheets("Détail individuel")
With Me.ComboBox1
For J = 2 To Ws.Range("A" & Rows.Count).End(xlUp).Row
.AddItem Ws.Range("A" & J)
Next J
End With
For I = 1 To 145
Me.Controls("TextBox" & I).Visible = True
Next I
End Sub
Private Sub CommandButton5_Click()
If MsgBox("Attention cette action va éffacer tout le contenu des texboxs, voulez vous continuez ? Cette action est nécessaire avant l'ajout d'un actionnaire", vbYesNo) = vbYes Then
Dim ctrl As Control
For Each ctrl In Me.Controls
If TypeName(ctrl) = "TextBox" Then ctrl.Text = ""
Next ctrl
End If
End Sub
Private Sub ComboBox1_Change()
Dim Ligne As Long
Dim I As Integer
If Me.ComboBox1.ListIndex = -1 Then Exit Sub
Ligne = Me.ComboBox1.ListIndex + 2
ComboBox2 = Ws.Cells(Ligne, "B")
For I = 1 To 145
Me.Controls("TextBox" & I) = Ws.Cells(Ligne, I + 2)
Next I
End Sub
'calcul cumul2016
Sub TextBox73_Change()
Calculcumul2009
End Sub
Sub TextBox74_Change()
Calculcumul2009
End Sub
Sub TextBox75_Change()
Calculcumul2009
End Sub
Sub TextBox76_Change()
Calculcumul2009
End Sub
Sub TextBox77_Change()
Calculcumul2009
End Sub
Sub Calculcumul2009()
Me.TextBox82.Value = Val(Replace(Me.TextBox73, ",", ".")) + Val(Replace(Me.TextBox74, ",", ".")) + Val(Replace(Me.TextBox75, ",", ".")) + Val(Replace(Me.TextBox76, ",", ".")) + Val(Replace(Me.TextBox77, ",", "."))
End Sub
Private Sub CommandButton4_Click()
Dim Ligne As Long
Dim I As Integer
If MsgBox("Confirmez-vous la modification de ce contact ?", vbYesNo) = vbYes Then
If Me.ComboBox1.ListIndex = -1 Then Exit Sub
Ligne = Me.ComboBox1.ListIndex + 2
Ws.Cells(Ligne, "B") = ComboBox2
For I = 1 To 145
If Me.Controls("TextBox" & I).Visible = True The
Ws.Cells(Ligne, I + 2) = Me.Controls("TextBox" & I)
End If
Next I
End If
With Ws.Range("D7:co59")
.NumberFormat = "0"
.Value = .Value
End With
End Sub
Private Sub CommandButton3_Click()
MsgBox ("Avant de vouloir ajouter un actionnaire, vérrifiez bien que vous avez appuyer sur le bouton clear")
'Pour le bouton Nouveau associé
Dim Ligne As Long
Dim I As Integer
If MsgBox("Confirmez-vous l'insertion de ce nouveau associé ?", vbYesNo) = vbYes Then
Ligne = Sheets("Détail individuel").Range("a4").End(xlDown).Row + 1
Range("A" & Ligne).Value = ComboBox1
Range("B" & Ligne).Value = ComboBox2
For I = 1 To 145
If Me.Controls("TextBox" & I).Visible = True Then
Ws.Cells(Ligne, I + 2) = Me.Controls("TextBox" & I)
End If
Next I
End If
With Ws.Range("D7:co59") 'D7:df59 plage de cellule
.NumberFormat = "0"
.Value = .Value
End With
End Sub
'Pour le bouton Quitter
Private Sub CommandButton1_Click()
Unload Me 'quitte l'interface
End Sub
bonjour
mon avis personnel : il ne faut pas faire de totaux ou sous-totaux ou autres calculs dans une base de données (sauf des calculs dans une colonne spécifique). Pas de ligne contenant des calculs.
Le risque de détruire partiellement la base de données est grand. Je l'ai vécu
Une BDD est faite pour la saisie uniquement, pas pour les synthèses.
Pour obtenir les totaux, fais un ou des TCD sur une feuille (ou mieux un classeur) séparée.
Bonus : pas besoin de macro pour gérer les calculs
Salut jmd,
Je fais deja des TCDs mais je voulais avoir dans ma base de données certaine formules du genre A2+A3=A4
des idées ?
les additions en colonnes sont fortement déconseillées (elles dépendent trop du tri ou filtrage des lignes) et elles figent la ligne 4, ce qui ferait hurler tout gestionnaire de données
il faut les mettre dans des TCD
joins ton fichier (anonymisé) et les calculs que tu veux avoir
pardon c'est des additions par ligne et non par colonnes , celles par colonnes sont sur mes TCDs et pour l'instant je réalise cette addition par
ub TextBox136_Change()
Calculcumul2017
End Sub
Sub TextBox137_Change()
Calculcumul2017
End Sub
Sub TextBox138_Change()
Calculcumul2017
End Sub
Sub TextBox139_Change()
Calculcumul2017
End Sub
Sub TextBox140_Change()
Calculcumul2017
End Sub
Sub Calculcumul2017()
Me.TextBox145.Value = Val(Replace(Me.TextBox136, ",", ".")) + Val(Replace(Me.TextBox137, ",", ".")) + Val(Replace(Me.TextBox138, ",", ".")) + Val(Replace(Me.TextBox139, ",", ".")) + Val(Replace(Me.TextBox140, ",", "."))
End Sub
Et désolé de ne pas te donner mon fichier mais j'ai trop de truc confidentielle à changer et je pensais à afficher le résultat sous forme de label est ce que cela pourrait marcher ?