Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1661 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Recuperer plage de valeur pour userform

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Recuperer plage de valeur pour userform

n°1565942
uriel2k
Posté le 27-05-2007 à 20:12:48  profilanswer
 


  Bonjour,
 
     J'ai réalisé une form qui permet le calcul de sous totaux a partir d'un classeur excel.
       En colonne A j'ai les dates de 1 à 31
       En colonne B des montants  (en especes)
       En colonne C des montant   (en cheques)
 
       Sur cette form je demande a l'utilisateur de choisir la date du début (textbox1) et la date de fin (textbox2)  (par exemple du 5 au 10)
 puis il a le choix il coche soient "espece" soit "cheque". (exemple: espece)
 
        En cliquant sur le boutons "calculer" la somme des montants (en especes) de la date de début (le 5) à la date de fin (le 10) apparait dan sune textbox3.
 
        Mon souci est de récupérer la plage de valeur de la date de début à la date de fin en fonction des colonnes choisi:
 
       J'ai écrit cela:  

Code :
  1. Private Sub cmdcalculer_Click()
  2. Dim Plage As Range 'plage de valeur sur laquelle sera effectuer la somme'
  3. Dim dd As Integer 'date de début entré par l'utilisateur'
  4. Dim df As Integer 'date de fin entré par l'utilisateur'
  5. Dim col As String 'col correspondant aux especes ou aux cheques ou autres'
  6. dd = TextBox1.Value
  7. df = TextBox2.Value
  8.       If optespece.Value = True Then
  9.       col = "B"
  10.       Set Plage = Sheets("Feuil1" ).Range("col & dd,col & df" )
  11.       textresultat.Value = Application.WorksheetFunction.Sum(Plage)
  12.       End If
  13.      
  14.       If optcheque.Value = True Then
  15.       col = "C"
  16.       Set Plage = Sheets("Feuil1" ).Range("C4:C5" )
  17.       textresultat.Value = Application.WorksheetFunction.Sum(Plage)
  18.       End If
  19.      
  20.       If optautre.Value = True Then
  21.       col = "D"
  22.       Set Plage = Sheets("Feuil1" ).Range("D4:D5" )
  23.       textresultat.Value = Application.WorksheetFunction.Sum(Plage)
  24.    
  25.       End If
  26.      
  27. End Sub


 
   Je vous remercie par avance pour vos réponses.
 
    Uriel,

mood
Publicité
Posté le 27-05-2007 à 20:12:48  profilanswer
 

n°1565947
uriel2k
Posté le 27-05-2007 à 20:22:01  profilanswer
 


 Les lignes 14,20 et 26 me pose problème,  que dois je passer en argument du "range" ?

n°1565986
ingenieurc​esi
Posté le 27-05-2007 à 23:09:35  profilanswer
 

bonsoir,
 
la date 1 est a quelle ligne?
 
EDIT: tu n'as pas d'intitulé sur la ligne 1 ?


Message édité par ingenieurcesi le 27-05-2007 à 23:32:01
n°1565988
ingenieurc​esi
Posté le 27-05-2007 à 23:14:07  profilanswer
 

pour la ligne 14 il faut enlever les ""
Set Plage = Sheets("Feuil1" ).Range(col & dd,col & df)

n°1565993
ingenieurc​esi
Posté le 27-05-2007 à 23:33:35  profilanswer
 

certaine fois à la place des & il faut utiliser des +

n°1566050
jpcheck
Pioupiou
Posté le 28-05-2007 à 10:46:36  profilanswer
 

comme tu fixes col à B autant faire directement:
Set Plage = Sheets("Feuil1" ).Range("B" & dd &":B"& df)

n°1566280
aprilthe5i​th
Posté le 28-05-2007 à 16:39:54  profilanswer
 

with worksheets(1)
If optespece.Value = True Then
     textresultat.Value = Application.Sum()
     End If
     If optcheque.Value = True Then
     col = "C"
     Set Plage = Sheets("Feuil1" ).Range("C4:C5" )
     textresultat.Value = Application.WorksheetFunction.Sum(Plage)
     End If
     If optautre.Value = True Then
     col = "D"
     Set Plage = Sheets("Feuil1" ).Range("D4:5" )
     textresultat.Value = Application.WorksheetFunction.Sum(Plage)
 
End If

n°1566282
aprilthe5i​th
Posté le 28-05-2007 à 16:44:06  profilanswer
 

Pardon pour le précédent envoi... le couyp est parti tout seul...
Donc, est ce que ce code fonctionne (?) :
 
 
with worksheets(1)
  If optespece.Value = True Then
     textresultat.Value = Application.Sum(range(.cells(dd,2),.cells(df,2)))
  elseIf optcheque.Value = True Then
     textresultat.Value =Application.Sum(range(.cells(dd,3),.cells(df,3)))
  elseIf optautre.Value = True Then
     textresultat.Value = Application.Sum(range(.cells(dd,4),.cells(df,4)))
  End If
end with

n°1568950
uriel2k
Posté le 02-06-2007 à 13:08:34  profilanswer
 

Merci a toutes et tous pour votre participation, voici le code que j'ai utilisé et qui fonctionne, a force d'acharnement j'y suis arrivé. Les différentes solutions que vous me proposer sont plus "élégante" je tacherai de m'en inspirer a l'avenir.
 
   Merci
 

Code :
  1. Private Sub cmdcalculer_Click()
  2. Dim Plage As Range
  3. Dim dd As Integer
  4. Dim df As Integer
  5. Dim col As String
  6. Dim a As Boolean
  7. If TextBox1.Value <> "" Or TextBox2.Value <> "" Then
  8. dd = TextBox1.Value
  9. df = TextBox2.Value
  10. dd = dd + 4
  11. df = df + 4
  12. Else
  13. MsgBox "Remplir les champs"
  14. End If
  15. If dd = df Then
  16. MsgBox "choisir deux dates différente"
  17. End If
  18. If df < dd Then
  19. MsgBox "La date de début doit être inférieur à la date de fin"
  20. End If
  21. If optespece.Value = False And optcheque.Value = False And optautre.Value = False Then
  22. MsgBox "choisir un type de paiement"
  23. End If
  24. If optespece.Value = True Or optcheque.Value = True Or optautre.Value = True Then
  25.       If optespece.Value = True Then
  26.       col = "G"
  27.       Set Plage = Sheets("mai" ).Range(col & dd, col & df)
  28.       textresultat.Value = Application.WorksheetFunction.Sum(Plage)
  29.       End If
  30.      
  31.       If optcheque.Value = True Then
  32.       col = "F"
  33.       Set Plage = Sheets("mai" ).Range(col & dd, col & df)
  34.       textresultat.Value = Application.WorksheetFunction.Sum(Plage)
  35.       End If
  36.      
  37.       If optautre.Value = True Then
  38.       col = "D"
  39.       Set Plage = Sheets("mai" ).Range(col & dd, col & df)
  40.       textresultat.Value = Application.WorksheetFunction.Sum(Plage)
  41.       End If
  42.      
  43. End If
  44.      
  45. End Sub

n°1568951
uriel2k
Posté le 02-06-2007 à 13:09:51  profilanswer
 


  Ce topic peut être fermé. (désolé je ne sais comment procéder pour le cloturer)
 
 
   


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Recuperer plage de valeur pour userform

 

Sujets relatifs
Valeur presente ou non[VBA / access] Effacer valeur zone de txt en fct valeur zone de liste
Executer une commande et recuperer la sortie standard[ DirectX ] Connaître la valeur des commandes exécutées
mozilla , recupérer le cacheVB2005 : Conversion d'une valeur string en valeur numérique
Récupérer les classes d'un package nommémettre une valeur du presse papier dans une variable
[VBA] Valeur maximale d'une sélection[Access-formulaire] Valeur par défaut issue d'une requête
Plus de sujets relatifs à : Recuperer plage de valeur pour userform


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR