a force de chercher j'ai flingué mon code de changement de textbox déjà rempli ou pa

bouchet2

XLDnaute Nouveau
Bon jour

A force de chercher une erreur j'ai flingué mon code pour modifier des textox déjà remplis ou vides.
Maintenant ma modification vient s'inscrire en dernière ligne en copiant la ligne en modification ou alors rien ne se passe??
Perdu complétement
Ci joint code et fichiers
Merci pour votre aide

Private Sub CommandButton2_Click() 'MODIFICATIONS TEXTBOX JAUNES ne fonctionne plus

If MsgBox("Etes-vous certain de vouloir modifier ce client ?", vbYesNo, "Demande de confirmation") = vbYes Then
Dim Ligne As Long
Dim I As Integer

If Me.ComboBox1.ListIndex = -1 Then Exit Sub 'On sort si pas de sélection
Ligne = Me.ComboBox1.ListIndex + 6

'Formule colonne :
Sheets("BD").Select
L = Sheets("BD").Range("A65536").End(xlUp).Row
Range("A" & L).Value = CDbl(TextBox1) 'Insère la donnée de la liste déroulante dans la colonne A
TextBox1 = Format(TextBox1, "#,##0")
Range("B" & L).Value = TextBox2 'Insère la donnée de la textbox1 dans la colonne B
'et à suivre....
Range("C" & L).Value = CDbl(TextBox3)
TextBox3 = Format(TextBox3, "#,##0")
Range("D" & L).Value = CDbl(TextBox4)
TextBox4 = Format(TextBox4, "#,##0")
Range("E" & L).Value = CDbl(TextBox5)
TextBox5 = Format(TextBox5, "#,##0.00 €")
Range("O" & L).Value = CDbl(TextBox15)
TextBox15 = Format(TextBox15, "#,##0.00 €")
Range("R" & L).Value = CDbl(TextBox18)
TextBox18 = Format(TextBox18, "#,##0.00 €")
Range("U" & L).Value = CDbl(TextBox21)
TextBox21 = Format(TextBox21, "#,##0.00 €")
Range("X" & L).Value = CDbl(TextBox24)
TextBox24 = Format(TextBox24, "#,##0.00 €")
Range("AA" & L).Value = CDbl(TextBox27)
TextBox27 = Format(TextBox27, "#,##0.00 €")
Range("AD" & L).Value = CDbl(TextBox30)
TextBox30 = Format(TextBox30, "#,##0.00 €")
Range("AG" & L).Value = CDbl(TextBox33)
TextBox33 = Format(TextBox33, "#,##0.00 €")
Range("AJ" & L).Value = CDbl(TextBox36)
TextBox36 = Format(TextBox36, "#,##0.00 €")
Range("AM" & L).Value = CDbl(TextBox39)
TextBox39 = Format(TextBox39, "#,##0.00 €")
Range("AP" & L).Value = CDbl(TextBox42)
TextBox42 = Format(TextBox42, "#,##0.00 €")
Range("AS" & L).Value = CDbl(TextBox45)
TextBox45 = Format(TextBox45, "#,##0.00 €")
Range("AV" & L).Value = CDbl(TextBox48)
TextBox48 = Format(TextBox48, "#,##0.00 €")
Range("AY" & L).Value = CDbl(TextBox51)
TextBox51 = Format(TextBox51, "#,##0.00 €")
Range("BB" & L).Value = CDbl(TextBox54)
TextBox54 = Format(TextBox54, "#,##0.00 €")

End If

End Sub
 

Pièces jointes

  • TABLEAU DE BORD-TRAVAIL-modif 23-6.xlsm
    163.7 KB · Affichages: 55

Lone-wolf

XLDnaute Barbatruc
Re : a force de chercher j'ai flingué mon code de changement de textbox déjà rempli

Bonsoir bouchet

Tu dis: j'ai flingué mon code pour modifier des textox déjà remplis ou vides, alors que le code sert à modifier une ligne de la feuille. Chercher l'erreur?? :confused:

Ensuite
Range("A" & L).Value = CDbl(TextBox1) 'Insère la donnée de la liste déroulante dans la colonne A, alors que c'est une textbox.

Un peu moins grave: Range("B" & L).Value = TextBox2 'Insère la donnée de la textbox1 dans la colonne B, mais c'est textbox2.

Et enfin le format des textbox de 15 à 54

For x = 15 to 54 step 3
Me.Controls("TextBox" & x) = Format(Me.Controls("TextBox" & x), "#,##0.00 €")
Next x

Comme tu l'a fait ici
For I = 5 To 58
Me.Controls("TextBox" & I) = Ws.Cells(Ligne, I).Value ' arret de débodage
Me.Controls("TextBox" & I) = Format(Me.Controls("TextBox" & I), "#,##0.00") 'Format(TextBox1, "#,##0.00")
Me.Controls("TextBox" & I).Font.Size = 12
Me.Controls("TextBox" & I).Font.Name = "calibri"
Me.Controls("TextBox" & I).Font.Bold = True
Me.Controls("TextBox" & I).ForeColor = RGB(0, 0, 1)
Next I


J'allais oublier: comment de textbox5 tu passe à textbox15 ? Mystère. :confused:
 
Dernière édition:

bouchet2

XLDnaute Nouveau
Re : a force de chercher j'ai flingué mon code de changement de textbox déjà rempli

Je te remercie déjà de prendre le temps de me répondre.
Concernant le passage de textbox5 à texbox 15 , c'est que les texbox intermédiaires ne sont que des calculs de TVA ou d'addition gérés par des formules excel dans les cellules.
J'avoue que ne sais pas comment faire et appliquer ta remarque en 1
"Le code sert modifier une ligne de feuille et non une textbox."
Code pour modifier des texbox?

J'avais essayé avec for

For I = 1 To 3
If Me.Controls("TextBox" & I).Visible = True Then
Ws.Cells(Ligne, I) = Me.Controls("TextBox" & I)
End If
Next I

For I = 4 To 5
If Me.Controls("TextBox" & I).Visible = True Then
Ws.Cells(Ligne, I) = CDbl(Me.Controls("TextBox" & I))
End If
Next I

Je m'excuse de l'heure car je vis en Guadeloupe ; 6 h de décalage.
Merci d'avance
 

Lone-wolf

XLDnaute Barbatruc
Re : a force de chercher j'ai flingué mon code de changement de textbox déjà rempli

Re

If Me.Controls("TextBox" & I).Visible = True Then ??? Que pasa Ombre? Tu as pris un coup de soleil??? A quoi ça sert, vu qu'elles sont visibles; à moins de les mettre en false dans userform_activate.


Ton fichier en retour, j'ai changer la macro de Modification. Regarde si ça joue

Mais il y a une chose qui me chifonne, de la colonne P à T tu as des formules. Est-tu sûr de vouloir les modifier?. Et Pourquoi en R6 tu as = 6900*104%, alors que la logique serait plutôt soit Q6 * l'une des colonnes des pourcentages; soit Cdbl(textbox18.value)* les pourcentages.
Et Revoir les TVA, par-ce en France d'après le Net elle est à 20% par défaut, 10% intermédiaireet 5% réduite. Et si chez vous le taux est à 100 ou plus, même multimiliardaire je ne mettrait pas d'argent chez vous.

Si tu veux t'instruire TVA dans les DOM
 

Pièces jointes

  • TABLEAU DE BORD-TRAVAIL-modif 23-6.xlsm
    174.2 KB · Affichages: 39
Dernière édition:

bouchet2

XLDnaute Nouveau
Re : a force de chercher j'ai flingué mon code de changement de textbox déjà rempli

Merci de faire l'effort de me répondre
je te joins un code que j'avais essayé mais très aléatoire quand aux résultats, car des fois il fonctionne bien et des fois non.
J'ai introduit des codes de calculs dans les texbox qui reflètent des cellules excel de calcul;
puis j'ai abandonné pensant que ce n'était pas nécessaires.
Merci de ton aide.
Cordialement
Jean

private Sub CommandButton2_Click()
If MsgBox("Etes-vous certain de vouloir modifier ce produit ?", vbYesNo, "Demande de confirmation") = vbYes Then
Dim Ligne As Long
Dim I As Integer
Set Ws = Sheets("BD")

If Me.ComboBox1.ListIndex = -1 Then Exit Sub 'On sort si pas de sélection
Ligne = Me.ComboBox1.ListIndex + 6
'Formule colonne :


For I = 1 To 3
If Me.Controls("TextBox" & I).Visible = True Then
Ws.Cells(Ligne, I) = Me.Controls("TextBox" & I)
Ws.Cells(Ligne, 1) = Me.Controls("TextBox1")
Ws.Cells(Ligne, 2) = Me.Controls("TextBox2")
Ws.Cells(Ligne, 3) = CDbl(TextBox3)

End If
Next I

For I = 4 To 5
If Me.Controls("TextBox" & I).Visible = True Then
Ws.Cells(Ligne, I) = Me.Controls("TextBox" & I)
Ws.Cells(Ligne, 4) = CDbl(TextBox4)
Ws.Cells(Ligne, 5) = CDbl(TextBox5)

End If
Next I
'Ws.Cells(Ligne, 6).FormulaR1C1 = "=RC[-1]*IF(RC[-2]=1,R2C61,IF(RC[-2]=2,R3C61,IF(RC[-2]=3,R4C61,)))"
'G
'Ws.Cells(Ligne, 7).FormulaR1C1 = "=SUM(RC[8]+RC[14]+RC[20]+RC[26]+RC[32]+RC[38]+RC[44])"
'H
'Ws.Cells(Ligne, 8).FormulaR1C1 = "=SUM(RC[-3])-(RC[7]+RC[13]+RC[19]+RC[25]+RC[31]+RC[37]+RC[43])"
'I
' Ws.Cells(Ligne, 9).FormulaR1C1 = "=SUM(RC[7]+RC[13]+RC[19]+RC[25]+RC[31]+RC[37]+RC[43])"
'j
' Ws.Cells(Ligne, 10).FormulaR1C1 = "=SUM(RC[7]+RC[13]+RC[19]+RC[25]+RC[37]+RC[31]+RC[43])"
'K
'Ws.Cells(Ligne, 11).FormulaR1C1 = "=SUM(RC[7]+RC[13]+RC[19]+RC[25]+RC[31]+RC[37]+RC[43])"
'L
'Ws.Cells(Ligne, 12).FormulaR1C1 = "=SUM(RC[7]+RC[13]+RC[19]+RC[25]+RC[31]+RC[37]+RC[43])"
'M
'Ws.Cells(Ligne, 13).FormulaR1C1 = "=SUM(RC[-4]-RC[-2])"


For I = 14 To 15
If Me.Controls("TextBox" & I).Visible = True Then
Ws.Cells(Ligne, I) = CDbl(Me.Controls("TextBox" & I))



For I = 15 To 18
Next I
If Me.Controls("TextBox" & I).Visible = True Then
Ws.Cells(Ligne, I) = Me.Controls("TextBox" & I)
Ws.Cells(Ligne, 15) = CDbl(TextBox15)
Ws.Cells(Ligne, 18) = CDbl(TextBox18)
End If

For I = 21 To 24
Next I
If Me.Controls("TextBox" & I).Visible = True Then
Ws.Cells(Ligne, I) = Me.Controls("TextBox" & I)
Ws.Cells(Ligne, 21) = CDbl(TextBox21)
Ws.Cells(Ligne, 24) = CDbl(TextBox24)
End If
For I = 25 To 54
Next I
If Me.Controls("TextBox" & I).Visible = True Then
'Ws.Cells(Ligne, I) = Me.Controls("TextBox" & I)
Ws.Cells(Ligne, 27) = CDbl(TextBox27)
Ws.Cells(Ligne, 30) = CDbl(TextBox30)
Ws.Cells(Ligne, 33) = CDbl(TextBox33)
Ws.Cells(Ligne, 36) = CDbl(TextBox36)
Ws.Cells(Ligne, 39) = CDbl(TextBox39)
Ws.Cells(Ligne, 42) = CDbl(TextBox42)
Ws.Cells(Ligne, 45) = CDbl(TextBox45)
Ws.Cells(Ligne, 48) = CDbl(TextBox48)
Ws.Cells(Ligne, 51) = CDbl(TextBox51)
Ws.Cells(Ligne, 54) = CDbl(TextBox54)
End If
'P
'Ws.Cells(Ligne, 16).FormulaR1C1 = "=RC[-1]*IF(RC[-12]=1,R2C61,IF(RC[-12]=2,R3C61,IF(RC[-12]=3,R4C61,IF(RC[-12]=0,R5C61))))"
'Q
'Ws.Cells(Ligne, 17).FormulaR1C1 = "=RC[1]/IF(RC[-13]=1,R2C61,IF(RC[-13]=2,R3C61,IF(RC[-13]=3,R4C61,IF(RC[-13]=0,R5C61))))"
'R
'' Ws.Cells(Ligne, 18) = CDbl(TextBox18)

'S
'Ws.Cells(Ligne, 19).FormulaR1C1 = "=SUM(RC[-4]-RC[-2])"
'T
'Ws.Cells(Ligne, 20).FormulaR1C1 = "=SUM(RC[-4]-RC[-2])"
'U
'Ws.Cells(Ligne, 21) = CDbl(TextBox21)
'V
' Ws.Cells(Ligne, 22).FormulaR1C1 = "=RC[-1]*IF(RC[-18]=1,R2C61,IF(RC[-18]=2,R3C61,IF(RC[-18]=3,R4C61,IF(RC[-18]="""",R5C61))))"
'w23
' Ws.Cells(Ligne, 23).FormulaR1C1 = "=RC[1]/IF(RC[-19]=1,R2C61,IF(RC[-19]=2,R3C61,IF(RC[-19]=3,R4C61,IF(#REF!="""",R5C61))))"
'Ws.Cells(Ligne, 24) = CDbl(TextBox24)
'Y
'Ws.Cells(Ligne, 25).FormulaR1C1 = "=SUM(RC[-4]-RC[-2])"
'Z
'Ws.Cells(Ligne, 26).FormulaR1C1 = "=SUM(RC[-4]-RC[-2])"

End If 'fin de la condition

End Sub
 

Lone-wolf

XLDnaute Barbatruc
Re : a force de chercher j'ai flingué mon code de changement de textbox déjà rempli

Bonsoir Jean

Je peux savoir pourquoi tu met: si les TextBox sont visible Alors .... et Pire

For I = 14 To 15
If Me.Controls("TextBox" & I).Visible = True Then
Ws.Cells(Ligne, I) = CDbl(Me.Controls("TextBox" & I))


Tu met Next i dans une autre boucle???
For I = 15 To 18
Next I


Pour une meilleure visibilité du code clique sur "Aller en mode avance" en bas à droite du message. Ici il y a un bouton #, clique dessus. Il y a deux balises '['CODE']' et '['\CODE']', dans le premier sans le \ tu écrit CODE=VBA; et entre les deux balises tu place ton code.

Code:
private Sub CommandButton2_Click()
If MsgBox("Etes-vous certain de vouloir modifier ce produit ?", vbYesNo, "Demande de confirmation") = vbYes Then
Dim Ligne As Long
Dim I As Integer
Set Ws = Sheets("BD")

If Me.ComboBox1.ListIndex = -1 Then Exit Sub 'On sort si pas de sélection
Ligne = Me.ComboBox1.ListIndex + 6
'Formule colonne :


For I = 1 To 3
'If Me.Controls("TextBox" & I).Visible = True Then
Ws.Cells(Ligne, I) = Me.Controls("TextBox" & I)
Ws.Cells(Ligne, 1) = Me.Controls("TextBox1")
Ws.Cells(Ligne, 2) = Me.Controls("TextBox2")
Ws.Cells(Ligne, 3) = CDbl(TextBox3)
'End If
Next I

For I = 4 To 5
'If Me.Controls("TextBox" & I).Visible = True Then
Ws.Cells(Ligne, I) = Me.Controls("TextBox" & I)
Ws.Cells(Ligne, 4) = CDbl(TextBox4)
Ws.Cells(Ligne, 5) = CDbl(TextBox5)
'If
Next I
'Ws.Cells(Ligne, 6).FormulaR1C1 = "=RC[-1]*IF(RC[-2]=1,R2C61,IF(RC[-2]=2,R3C61,IF(RC[-2]=3,R4C61,)))"
'G
'Ws.Cells(Ligne, 7).FormulaR1C1 = "=SUM(RC[8]+RC[14]+RC[20]+RC[26]+RC[32]+RC[38]+RC[44])"
'H
'Ws.Cells(Ligne, 8).FormulaR1C1 = "=SUM(RC[-3])-(RC[7]+RC[13]+RC[19]+RC[25]+RC[31]+RC[37]+RC[43])"
'I
'Ws.Cells(Ligne, 9).FormulaR1C1 = "=SUM(RC[7]+RC[13]+RC[19]+RC[25]+RC[31]+RC[37]+RC[43])"
'j
'Ws.Cells(Ligne, 10).FormulaR1C1 = "=SUM(RC[7]+RC[13]+RC[19]+RC[25]+RC[37]+RC[31]+RC[43])"
'K
'Ws.Cells(Ligne, 11).FormulaR1C1 = "=SUM(RC[7]+RC[13]+RC[19]+RC[25]+RC[31]+RC[37]+RC[43])"
'L
'Ws.Cells(Ligne, 12).FormulaR1C1 = "=SUM(RC[7]+RC[13]+RC[19]+RC[25]+RC[31]+RC[37]+RC[43])"
'M
'Ws.Cells(Ligne, 13).FormulaR1C1 = "=SUM(RC[-4]-RC[-2])"


For I = 14 To 15
Ws.Cells(Ligne, I) = CDbl(Me.Controls("TextBox" & I))
Next i


For I = 15 To 18
Ws.Cells(Ligne, I) = Me.Controls("TextBox" & I)
Ws.Cells(Ligne, 15) = CDbl(TextBox15)
Ws.Cells(Ligne, 18) = CDbl(TextBox18)
End If
Next I


For I = 21 To 54
'If Me.Controls("TextBox" & I).Visible = True Then
Ws.Cells(Ligne, I) = Me.Controls("TextBox" & I)
'End If
Next i

'P
'Ws.Cells(Ligne, 16).FormulaR1C1 = "=RC[-1]*IF(RC[-12]=1,R2C61,IF(RC[-12]=2,R3C61,IF(RC[-12]=3,R4C61,IF(RC[-12]=0,R5C61))))"
'Q
'Ws.Cells(Ligne, 17).FormulaR1C1 = "=RC[1]/IF(RC[-13]=1,R2C61,IF(RC[-13]=2,R3C61,IF(RC[-13]=3,R4C61,IF(RC[-13]=0,R5C61))))"
'S
'Ws.Cells(Ligne, 19).FormulaR1C1 = "=SUM(RC[-4]-RC[-2])"
'T
'Ws.Cells(Ligne, 20).FormulaR1C1 = "=SUM(RC[-4]-RC[-2])"
'U
'Ws.Cells(Ligne, 21) = CDbl(TextBox21)
'V
' Ws.Cells(Ligne, 22).FormulaR1C1 = "=RC[-1]*IF(RC[-18]=1,R2C61,IF(RC[-18]=2,R3C61,IF(RC[-18]=3,R4C61,IF(RC[-18]="""",R5C61))))"
'w23
' Ws.Cells(Ligne, 23).FormulaR1C1 = "=RC[1]/IF(RC[-19]=1,R2C61,IF(RC[-19]=2,R3C61,IF(RC[-19]=3,R4C61,IF(#REF!="""",R5C61))))"
'Ws.Cells(Ligne, 24) = CDbl(TextBox24)
'Y
'Ws.Cells(Ligne, 25).FormulaR1C1 = "=SUM(RC[-4]-RC[-2])"
'Z
'Ws.Cells(Ligne, 26).FormulaR1C1 = "=SUM(RC[-4]-RC[-2])"

End If 'fin de la condition

End Sub
 
Dernière édition:

Lone-wolf

XLDnaute Barbatruc
Re : a force de chercher j'ai flingué mon code de changement de textbox déjà rempli

Bonjour Jean

Toutes mes excuses, j'aurais dû te montrer et te le dire dès le départ. Concernant toutes ces formules, ouvre un autre post pour les tranposer en VBA. Pourquoi me dira tu? Par-ce que ce ne saura plus un casse tête pour savoir qu'elle colonne ou non contient une formule. Ensuite, les codes seront plus gérables. Regarde cette macro.

Code:
For Each ctrl In Me.Controls 'Pour chaque contrôle du formulaire
col = Val(ctrl.Tag)  'col(où colonne) corréspond à la valeur de Tag
                            'propriété du contrôle
If col > 0 Then
If Not IsNumeric(ctrl) Then
.Cells(derlig, col) = ctrl
Else
.Cells(derlig, col) = Format(CDbl(ctrl), "0.0")
End If
End If
Next ctrl

Tu vois la différence?. Concernant "TAG", celui-ci ce trouve dans les propriétés des contrôles(TextBox, Combobox etc.). Le Tag correspond au numéro de la colonne ( 1 = A; 2 = B; 6 = F; 8 = H; 10 = J) et au numéros des TextBox. Ceci évite toute erreur d'inscription dans la feuille. J'ai préparer un formulaire pour que tu t'y inspire. L'autre avec des champs calculés (Colonnes J à R) qui étaient fait auparavant par des formules.
 

Pièces jointes

  • Exemple Codage Formulaire.xls
    49.5 KB · Affichages: 58
  • Partite Juventus.xlsm
    74.3 KB · Affichages: 45
Dernière édition:

Statistiques des forums

Discussions
315 134
Messages
2 116 612
Membres
112 811
dernier inscrit
shade1452