Macro exécuté = Format de celule pérdu

ssassam

XLDnaute Occasionnel
Bonjour les amis,

Me voila encore avec un nouveau probléme

J'ai un USERFORM de modification lorsque j’exécute la modification je perds les format de mes données

Comment avoir la destination en valeur

Sheets("feuil2").Cells(.List(.ListIndex, 1), i) = Controls("TextBox" & i)
Controls("TextBox" & i) = ""

Exemple en PJ

Ci après le code complet de l'exécution :

Code:
Private Sub CommandButton3_Click()   '  Valider Modification

Dim i As Byte
With ComboBox1
For i = 1 To 13
     Sheets("feuil2").Cells(.List(.ListIndex, 1), i) = Controls("TextBox" & i)
     Controls("TextBox" & i) = ""
Next i
    .ListIndex = -1
End With

Merci
 

Pièces jointes

  • formulaire clients_2 test.xlsm
    34.1 KB · Affichages: 32
  • formulaire clients_2 test.xlsm
    34.1 KB · Affichages: 41
  • formulaire clients_2 test.xlsm
    34.1 KB · Affichages: 37

Docmarti

XLDnaute Occasionnel
Re : Macro exécuté = Format de celule pérdu

Bonjour ssassam

Il faut typer les données en provenance de VBA vers Excel. Ce n'est pas le Numberformat des cellules qui décide du type de la donnée, c'est VBA.


Code:
Select Case i 
     Case 1
    
      Sheets("feuil2").Cells(.List(.ListIndex, 1), i) = CDate(Controls("TextBox" & i))
    
    Case 2, 8, 10, 11, 12, 13
         
      Sheets("feuil2").Cells(.List(.ListIndex, 1), i) = CDbl(Controls("TextBox" & i))
      
     Case 3, 4, 5, 6, 7, 9
     
      Sheets("feuil2").Cells(.List(.ListIndex, 1), i) = CStr(Controls("TextBox" & i))
    
  End Select

Cordialement

Docmarti
 

Docmarti

XLDnaute Occasionnel
Re : Macro exécuté = Format de celule pérdu

Docmarti c'est extra ordinaire ,

J'ai un problème avec la cellule Heur (Case 2) c'est la seule qui reprend pas le format.

Merci

Pour les heures, mets dans le controle la valeur de la cellule avec le format( valeur, "hh:mm:ss")

Code:
With ComboBox1
For i = 1 To 13
Select Case i
 Case 2
  Controls("TextBox" & i) = Format(Sheets("feuil2").Cells(.List(.ListIndex, 1), i).Value, "hh:mm:ss")
 Case Else
    Controls("TextBox" & i) = Sheets("feuil2").Cells(.List(.ListIndex, 1), i).Value
 End Select
Next i
End With

Et on écrit dans la cellule la valeur TimeValue(Controls("TextBox" & i)) pour les heures dans CASE 2.


Code:
   Case 2
      Sheets("feuil2").Cells(.List(.ListIndex, 1), i).NumberFormat = "hh:mm:ss"
      Sheets("feuil2").Cells(.List(.ListIndex, 1), i) = TimeValue(Controls("TextBox" & i))


Docmarti
 
Dernière édition:

ssassam

XLDnaute Occasionnel
Re : Macro exécuté = Format de celule pérdu

Docmarti Oui ca marche avec le premier code

Code:
Select Case i
 Case 2
  Controls("TextBox" & i) = Format(Sheets("feuil2").Cells(.List(.ListIndex, 1), i).Value, "hh:mm:ss")
 Case Else
    Controls("TextBox" & i) = Sheets("feuil2").Cells(.List(.ListIndex, 1), i).Value
 End Select


TEST en PJ j'ai un problème de format perdu avec les chiffre en virgule seulement

En plus je souhaite ajouté le texte a la ligne annuler comme ça case : N°BC & "Annulé"


Merci pour ton aide
 

Pièces jointes

  • formulaire clients_2 test(1).xlsm
    38.9 KB · Affichages: 29
Dernière édition:

ssassam

XLDnaute Occasionnel
Re : Macro exécuté = Format de celule pérdu

j'ai testé avec ce code mais il ne fonctionne pas

Code:
Select Case i

Case 2
  Controls("TextBox" & i) = Format(Sheets("feuil2").Cells(.List(.ListIndex, 1), i).Value, "hh:mm:ss")
  
Case 10, 11, 12, 13
  Controls("TextBox" & i) = Format(Sheets("feuil2").Cells(.List(.ListIndex, 1), i).Value, "0.000")
    
 Case Else
    Controls("TextBox" & i) = Sheets("feuil2").Cells(.List(.ListIndex, 1), i).Value
    

 End Select
 

Docmarti

XLDnaute Occasionnel
Re : Macro exécuté = Format de celule pérdu

En effet, j'ai modifié Case 2 par
Code:
Case 2
      Sheets("feuil2").Cells(.List(.ListIndex, 1), i).NumberFormat = "hh:mm:ss"
      Sheets("feuil2").Cells(.List(.ListIndex, 1), i) = TimeValue(Controls("TextBox" & i))

C'est plus fonctionnel.
 

Pièces jointes

  • formulaire clients_2 test(1)_gb001.xls
    87.5 KB · Affichages: 24
  • formulaire clients_2 test(1)_gb001.xls
    87.5 KB · Affichages: 25
  • formulaire clients_2 test(1)_gb001.xls
    87.5 KB · Affichages: 27

ssassam

XLDnaute Occasionnel
Re : Macro exécuté = Format de celule pérdu

#8 = pour la modification ça marche dans tout les coté

pour l'annulation ça marche pour les chiffre rond , et non pour les chiffre avec virgule

Dans tout les cas , pour l'annulation je souhaite avoir les case 10, 11, 12, 13 au format négative pour soldé l'écriture.

Est ce que c'est possible
 

Docmarti

XLDnaute Occasionnel
Re : Macro exécuté = Format de celule pérdu

#8 = pour la modification ça marche dans tout les coté

[/QUOTE]pour l'annulation ça marche pour les chiffre rond , et non pour les chiffre avec virgule[/QUOTE]

Je suppose que tu devrais utiliser les mêmes modifs que j'ai faites pour la validation.

Dans tout les cas , pour l'annulation je souhaite avoir les case 10, 11, 12, 13 au format négative pour soldé l'écriture.

Est ce que c'est possible

Je n'ai pas le temps maintenant. Je dois partir.

Docmarti
 

Docmarti

XLDnaute Occasionnel
Re : Macro exécuté = Format de celule pérdu

Fichier joint

Docmarti
 

Pièces jointes

  • formulaire clients_2 test(1)_gb001.xls
    85 KB · Affichages: 32
  • formulaire clients_2 test(1)_gb001.xls
    85 KB · Affichages: 36
  • formulaire clients_2 test(1)_gb001.xls
    85 KB · Affichages: 30

ssassam

XLDnaute Occasionnel
Re : Macro exécuté = Format de celule pérdu

Eureekaa !!!

Enfin avec un astuce j'ai ajouté une case 14 et ça a ma marché

vOILA LE CODE

Code:
    L = .Range("A65536").End(xlUp).Row + 1 'A
    
       For x = 1 To 14
             
        .Cells(L, x).Select
        .Cells(L, x).Value = Me.Controls("TextBox" & x).Value
        .Cells(L, x).Value = .Cells(L, x).Value
        .Cells(L, x).Value = .Cells(L, x).Value
        .Cells(L, 14).Value = "ANNUL°" & Cells(L, 4)


Merci ENIGME RESOLU
 

Discussions similaires

Statistiques des forums

Discussions
312 215
Messages
2 086 329
Membres
103 182
dernier inscrit
moutassim.amine