Probléme de code
#1
Régulier XLPages

Inscription: 08/12/2008

Messages: 55

Système d'exploitation:
PC
Version Excel utilisée:
2003
Posté le : 20-08-2012 16h20

Bonjour a tous

 

Voulant effectuer le total de certaine colonne dans mon projet j’ai récupérer le code suivant :

 

Sheets("Feuille").Activate

t = Application.WorksheetFunction.Subtotal(9, Columns(4))

Range("M1") = t

 

Ce code se trouvant dans un module, code qui fonctionne très bien dans un petit programme.

 

Le problème pour moi je pense ? C’est que mon code pour réaliser le total ce trouve dans un UserForm

 

Voici le code qui se trouve dans l’initialisation de l’UserForm

 

Sheets("Feuille").Activate

 

T = Application.WorksheetFunction.Subtotal(9, Columns(10))

 

Le premier total devant s’effectuer dans la colonne 10, mes T reste toujours a 0

 

L’un de vous aurait ils la solution pour effectuer cela depuis l’UserForm

 

J’ai refait le test a plusieurs reprise et toujours 0

 

Dans l’attente bien cordialement a tous


Hors Ligne
Rapport   Haut 

Re: Probléme de code
#2
Accro XLPages

Inscription: 23/05/2008
De La Varenne Saint-Hilaire

Messages: 356

Système d'exploitation:
PC
Version Excel utilisée:
2010
Posté le : 20-08-2012 16h47
Bonjour beatbles, bonjour à tous,

Si comme tu le dis tu as ceci:

Private Sub UserForm_Initialize()
    Sheets("Feuille").Activate
    T = Application.WorksheetFunction.Subtotal(9, Columns(10))
End Sub
 

chez moi T n'est pas à zéro.

Il doit y avoir une autre raison, mais il serait utile que tu joignes un petit extrait de ton fichier pour que les uns et les autres ici puissent t'aider en sachant de quoi il retourne.

Bien à toi,

mth
Hors Ligne
Rapport   Haut 

Re: Probléme de code
#3
Régulier XLPages

Inscription: 08/12/2008

Messages: 55

Système d'exploitation:
PC
Version Excel utilisée:
2003
Posté le : 21-08-2012 13h22
Bonjour mth et bonjour a tous

Oui j'ai le code suivant :
Private Sub UserForm_Initialize()

Dim T As Currency

Sheets("Feuille").Activate

T = Application.WorksheetFunction.Subtotal(9, Columns(10))

avd1 = Format(T, "#,##0.00 €")
Stop
et comme vous je n'ai pas compris pourquoi il ne fonctionner pas quand je l'ai mis dans mon projet, dont vous avez le début du code qui m' insérer le total dans la variable "avdl".

Je vous joint une copie d'écran qui n'ai pas bien grande ou vous pourrez voir que T est égale a zéro dans mon projet.
Je vois ce que je pourrais vous apporter de plus
Bien cordialement

Hors Ligne
Rapport   Haut 

Re: Probléme de code
#4
Régulier XLPages

Inscription: 08/12/2008

Messages: 55

Système d'exploitation:
PC
Version Excel utilisée:
2003
Posté le : 21-08-2012 13h29
J'ai l'impression que mon image n'ai pas passer, j'essaie de l'envoyer a nouveau.
J'ai confondue 7z et zip, pardonner moi.



Pièce jointe:
zip Resul.zip   [ Taille: 7.90 Ko - Téléchargements: 498 ]
Hors Ligne
Rapport   Haut 

Re: Probléme de code
#5
Régulier XLPages

Inscription: 08/12/2008

Messages: 55

Système d'exploitation:
PC
Version Excel utilisée:
2003
Posté le : 21-08-2012 13h46
Je revient a nouveau aprés avoir refait des essaie et repris des copie d'écran plus grande, j'ai bien contrôler qu'il sélectionner bien la bonne feuille.

Bien cordialement

Pièce jointe:
zip Re1.zip   [ Taille: 5.13 Ko - Téléchargements: 463 ]
zip Re2.zip   [ Taille: 5.10 Ko - Téléchargements: 484 ]
Hors Ligne
Rapport   Haut 

Re: Probléme de code
#6
Accro XLPages

Inscription: 23/05/2008
De La Varenne Saint-Hilaire

Messages: 356

Système d'exploitation:
PC
Version Excel utilisée:
2010
Posté le : 21-08-2012 15h25
Bonjour beatbles, bonjour à tous.

Pourrais-tu vérifier qu'au moment où tu lances ton Userform il y a bien des données affichées dans la colonne J de cette feuille nommée "Feuille"? Si tel n'est pas le cas la fonction SOUS.TOTAL() te renverra zéro.

Cela ne sert à rien de mettre des photos écran, comme je te l'ai demandé il faut le fichier (sans données confidentielles) avec son Userform et le code complet, y compris les fonctions ou autres macros évènementielles que tu aurais pu écrire et qui pourraient perturber.

Sans élément de ta part permettant de t'aider, je crains que tu n'aies pas beaucoup de réponses ...

Bien cordialement

mth

Hors Ligne
Rapport   Haut 

Re: Probléme de code
#7
Régulier XLPages

Inscription: 08/12/2008

Messages: 55

Système d'exploitation:
PC
Version Excel utilisée:
2003
Posté le : 22-08-2012 09h25
Bonjour Mth et bonjour a tous
Pour ta 1er question les données sont bien dans la colonnes J
Pour la 2éme question le fichier fais 2Mo, se qui fais gros, ensuite le bout de fichier que j'ai mis précédemment et le seul a l'ouverture de l'User et je n'ai pas lancer le programme j'ai juste lancer l'User en pas a pas.Je ne sais pas si j'ai dit cela correctement et si je me suis fais comprendre.
Je me rend bien contre qu'il y as une chose qui ne tourne pas rond, puisque cela fonctionne dans un autres fichier.
J'ai depuis essayer de contourne le problème de cette maniére:
b1 = 0
ligne = Sheets("Feuille").[J65000].End(xlUp).Row
For i = 2 To ligne
vOrdre1 = "J" & i
A1 = Range(vOrdre1)
b1 = b1 + A1
Next
avd1 = Format(b1, "#,##0.00 €")
TextBox1 = avd1

Je sais cela ne régle pas l'autre problème,et cela me donne le résultat ,et j'ai 14 colonnes a totaliser cela sera un peu plus long.
Ai je répondu a t'es questions, bien cordialement
beatbles


Hors Ligne
Rapport   Haut 

Re: Probléme de code
#8
Régulier XLPages

Inscription: 08/12/2008

Messages: 55

Système d'exploitation:
PC
Version Excel utilisée:
2003
Posté le : 22-08-2012 10h17
Bonjour Mth et a tous

En cherchant je vient de constater et cela a peut être un rapport avec notre souci, que les valeurs que je stocke dans les cellules  sont (Nombre stocké sous forme de texte) avec un petit triangle vert dans le coin gauche.
Je ne me rappelle plus exactement pourquoi !
Bien cordialement
beatbles
Hors Ligne
Rapport   Haut 

Re: Probléme de code
#9
Accro XLPages

Inscription: 23/05/2008
De La Varenne Saint-Hilaire

Messages: 356

Système d'exploitation:
PC
Version Excel utilisée:
2010
Posté le : 22-08-2012 10h42
Bonjour beatbles, bonjour le forum,

Si ton fichier fait 2Mo il suffit de retirer tout ce qui ne sert à rien pour expliquer le problème, limiter le nombre de lignes à une dizaine dans les feuilles par exemple, éliminer les onglets non utilisés dans cette procédure, etc. puis zipper.
Ceci dit si tu as réussi à contourner ton problème tant mieux.

Pour le reste, ta boucle est sans doute un peu longue à exécuter si tu as beaucoup de lignes, essaie peut-être comme ceci ? ...  
Option Explicit
Sub test()
Dim ligne As Long, B1 As String

With Sheets("Feuille")
  ligne = .Cells(Rows.Count, 10).End(xlUp).Row
  B1 = Format(WorksheetFunction.Subtotal(9, .Range("J2:J" & ligne)), "#,##0.00 €")
End With
End Sub
 

Suite: ... Bien évidement, si ta colonne est remplie de texte, cela te donnera toujours zéro. Si c'est une coquille remets le bon format, si non il faudra dans la macro transformer tout cela en numérique.

(euh ... je ne veux pas avoir l'air d'insister lourdement mais avec un fichier joint nous aurions vu tout de suite que tu cherchais à additionner du texe !! ... )

Très bonne journée,

mth
Hors Ligne
Rapport   Haut 

Re: Probléme de code
#10
Régulier XLPages

Inscription: 08/12/2008

Messages: 55

Système d'exploitation:
PC
Version Excel utilisée:
2003
Posté le : 22-08-2012 17h24
Bonjour Mth et bonjour a tous

Franchement j’avoue que j’aurais un mal fou a limiter les lignes que vous penser avoir besoin de comprendre mon problème, mon projet comprend pour le moment mes je pense être bientôt au bout de 30 UserForm, j’ai aussi 3 modules de classe, et certaine partie dans un module, peut être ma façons de traiter les valeur monétaires.

Ni voyez surtout pas de ma par de ne pas montrer mon travail.

Voici une partie du code pour une somme qui doit entrer dans un textbox, une cellule et j’espère ne pas en oublier :


UserForm
'=====================================================
' Traitement et contrôle textbox frais de la visite
'=====================================================
Private Sub TxtCovisi_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim NoEuro As New cEuropro
If TxtCovisi = "" Then Exit Sub
NoEuro.Neuro = TxtCovisi
TxtCovisi = NoEuro.Neuro
vAleur = CCur(TxtCovisi)
End Sub

Private Sub TxtCovisi_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
KeyAscii = AutoCarac(KeyAscii)
End Sub

Mise en place dans la cellule depuis l’User

'====PRIXVISITE=================================================
ActiveCell.Offset(0, 1).Activate
ActiveCell = Format(TxtCovisi, "#,##0.00 €")


La classe :
Option Explicit

Private mNeuro As Variant

Property Get Neuro() As Variant

'propriété lecture

Neuro = mNeuro

End Property

Property Let Neuro(Neuro As Variant)

Dim temp As Variant
'propriété ecriture
temp = Replace(Neuro, ".", ",")
'Stop
temp = Format(temp, "#,##0.00 €")
If temp = "" Then
temp = Format(temp, "#,##0.00 €") ': Exit Sub
End If
mNeuro = temp

End Property
 

Pour notre problème le code que j’ai indiqué ne change pas bien sur dans mon projet j’aurais 14 valeur total.

Mais mon problème survient bien sur parce que les valeur son en texte , au vue de la partie du code dans la façons de traiter pour le mettre dans le textbox et dans la cellule y verrez vous l’erreur que j’ai pu y commettre
Bien cordialement bonne fin de journée


Hors Ligne
Rapport   Haut 


Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Qui consulte actuellement ce sujet ?   1 Utilisateur(s) anonymes