Trop grand...

Hollowman06

XLDnaute Nouveau
Bonjour,

Pourriez-vous me donner un conseil pour couper mon écriture :

Private Sub CommandButton1_Click()
If OptionButton1 = True Then
Sheets("Janvier 2012").Range("c8").Value = TextBox13.Value
Sheets("Janvier 2012").Range("b8").Value = TextBox10.Value
Sheets("Janvier 2012").Range("d8").Value = TextBox12.Value
Sheets("Janvier 2012").Range("f8").Value = TextBox21.Value
Sheets("Janvier 2012").Range("e8").Value = TextBox22.Value
Sheets("Janvier 2012").Range("g8").Value = TextBox23.Value
Sheets("Janvier 2012").Range("m8").Value = TextBox30.Value
Sheets("Janvier 2012").Range("n8").Value = TextBox31.Value
Sheets("Janvier 2012").Range("s8").Value = TextBox32.Value
Sheets("Janvier 2012").Range("l8").Value = TextBox36.Value
Sheets("Janvier 2012").Range("r8").Value = TextBox38.Value
Sheets("Janvier 2012").Range("t8").Value = TextBox39.Value
Sheets("Janvier 2012").Range("x8").Value = TextBox40.Value
Sheets("Janvier 2012").Range("v8").Value = TextBox41.Value
Sheets("Janvier 2012").Range("w8").Value = TextBox45.Value
Sheets("Janvier 2012").Range("u8").Value = TextBox46.Value
Sheets("Janvier 2012").Range("y8").Value = TextBox42.Value
Sheets("Janvier 2012").Range("ac8").Value = TextBox43.Value
Sheets("Janvier 2012").Range("aa8").Value = TextBox44.Value
Sheets("Janvier 2012").Range("ab8").Value = TextBox47.Value
Sheets("Janvier 2012").Range("z8").Value = TextBox48.Value
Sheets("Janvier 2012").Range("ad8").Value = TextBox49.Value
Sheets("Janvier 2012").Range("aj8").Value = TextBox50.Value
Sheets("Janvier 2012").Range("ah8").Value = TextBox51.Value
Sheets("Janvier 2012").Range("ag8").Value = TextBox52.Value
Sheets("Janvier 2012").Range("ay8").Value = TextBox79.Value
Sheets("Janvier 2012").Range("p8").Value = TextBox81.Value
Sheets("Janvier 2012").Range("az8").Value = TextBox83.Value
Sheets("Janvier 2012").Range("ba8").Value = TextBox85.Value
Sheets("Janvier 2012").Range("bb8").Value = TextBox87.Value
Sheets("Janvier 2012").Range("bc8").Value = TextBox91.Value
Sheets("Janvier 2012").Range("bd8").Value = TextBox93.Value
Sheets("Janvier 2012").Range("be8").Value = TextBox95.Value
Sheets("Janvier 2012").Range("bf8").Value = TextBox89.Value
Sheets("Janvier 2012").Range("bg8").Value = TextBox99.Value
Sheets("Janvier 2012").Range("bi8").Value = TextBox97.Value
Sheets("Janvier 2012").Range("ah43").Value = TextBox100.Value
Sheets("Janvier 2012").Range("cn8").Value = TextBox78.Value
Sheets("Janvier 2012").Range("co8").Value = TextBox80.Value
Sheets("Janvier 2012").Range("bo8").Value = TextBox82.Value
Sheets("Janvier 2012").Range("br8").Value = TextBox84.Value
Sheets("Janvier 2012").Range("cp8").Value = TextBox86.Value
Sheets("Janvier 2012").Range("cq8").Value = TextBox90.Value
Sheets("Janvier 2012").Range("bx8").Value = TextBox92.Value
Sheets("Janvier 2012").Range("ca8").Value = TextBox94.Value
Sheets("Janvier 2012").Range("cd8").Value = TextBox88.Value
Sheets("Janvier 2012").Range("cg8").Value = TextBox98.Value
Sheets("Janvier 2012").Range("cj8").Value = TextBox96.Value
End If

If OptionButton2 = True Then
Sheets("Janvier 2012").Range("c9").Value = TextBox13.Value
Sheets("Janvier 2012").Range("b9").Value = TextBox10.Value
Sheets("Janvier 2012").Range("d9").Value = TextBox12.Value
Sheets("Janvier 2012").Range("f9").Value = TextBox21.Value
Sheets("Janvier 2012").Range("e9").Value = TextBox22.Value
Sheets("Janvier 2012").Range("g9").Value = TextBox23.Value
Sheets("Janvier 2012").Range("m9").Value = TextBox30.Value
Sheets("Janvier 2012").Range("n9").Value = TextBox31.Value
Sheets("Janvier 2012").Range("s9").Value = TextBox32.Value
Sheets("Janvier 2012").Range("l9").Value = TextBox36.Value
Sheets("Janvier 2012").Range("r9").Value = TextBox38.Value
Sheets("Janvier 2012").Range("t9").Value = TextBox39.Value
Sheets("Janvier 2012").Range("x9").Value = TextBox40.Value
Sheets("Janvier 2012").Range("v9").Value = TextBox41.Value
Sheets("Janvier 2012").Range("w9").Value = TextBox45.Value
Sheets("Janvier 2012").Range("u9").Value = TextBox46.Value
Sheets("Janvier 2012").Range("y9").Value = TextBox42.Value
Sheets("Janvier 2012").Range("ac9").Value = TextBox43.Value
Sheets("Janvier 2012").Range("aa9").Value = TextBox44.Value
Sheets("Janvier 2012").Range("ab9").Value = TextBox47.Value
Sheets("Janvier 2012").Range("z9").Value = TextBox48.Value
Sheets("Janvier 2012").Range("ad9").Value = TextBox49.Value
Sheets("Janvier 2012").Range("aj9").Value = TextBox50.Value
Sheets("Janvier 2012").Range("ah9").Value = TextBox51.Value
Sheets("Janvier 2012").Range("ag9").Value = TextBox52.Value
Sheets("Janvier 2012").Range("ay9").Value = TextBox79.Value
Sheets("Janvier 2012").Range("p9").Value = TextBox81.Value
Sheets("Janvier 2012").Range("az9").Value = TextBox83.Value
Sheets("Janvier 2012").Range("ba9").Value = TextBox85.Value
Sheets("Janvier 2012").Range("bb9").Value = TextBox87.Value
Sheets("Janvier 2012").Range("bc9").Value = TextBox91.Value
Sheets("Janvier 2012").Range("bd9").Value = TextBox93.Value
Sheets("Janvier 2012").Range("be9").Value = TextBox95.Value
Sheets("Janvier 2012").Range("bf9").Value = TextBox89.Value
Sheets("Janvier 2012").Range("bg9").Value = TextBox99.Value
Sheets("Janvier 2012").Range("bi9").Value = TextBox97.Value
Sheets("Janvier 2012").Range("ah43").Value = TextBox100.Value
Sheets("Janvier 2012").Range("cn9").Value = TextBox78.Value
Sheets("Janvier 2012").Range("co9").Value = TextBox80.Value
Sheets("Janvier 2012").Range("bo9").Value = TextBox82.Value
Sheets("Janvier 2012").Range("br9").Value = TextBox84.Value
Sheets("Janvier 2012").Range("cp9").Value = TextBox86.Value
Sheets("Janvier 2012").Range("cq8").Value = TextBox90.Value
Sheets("Janvier 2012").Range("bx9").Value = TextBox92.Value
Sheets("Janvier 2012").Range("ca9").Value = TextBox94.Value
Sheets("Janvier 2012").Range("cd9").Value = TextBox88.Value
Sheets("Janvier 2012").Range("cg9").Value = TextBox98.Value
Sheets("Janvier 2012").Range("cj9").Value = TextBox96.Value
End If

If OptionButton3 = True Then
Sheets("Janvier 2012").Range("c10").Value = TextBox13.Value
Sheets("Janvier 2012").Range("b10").Value = TextBox10.Value
Sheets("Janvier 2012").Range("d10").Value = TextBox12.Value
Sheets("Janvier 2012").Range("f10").Value = TextBox21.Value
Sheets("Janvier 2012").Range("e10").Value = TextBox22.Value
Sheets("Janvier 2012").Range("g10").Value = TextBox23.Value
Sheets("Janvier 2012").Range("m10").Value = TextBox30.Value
Sheets("Janvier 2012").Range("n10").Value = TextBox31.Value
Sheets("Janvier 2012").Range("s10").Value = TextBox32.Value
Sheets("Janvier 2012").Range("l10").Value = TextBox36.Value
Sheets("Janvier 2012").Range("r10").Value = TextBox38.Value
Sheets("Janvier 2012").Range("t10").Value = TextBox39.Value
Sheets("Janvier 2012").Range("x10").Value = TextBox40.Value
Sheets("Janvier 2012").Range("v10").Value = TextBox41.Value
Sheets("Janvier 2012").Range("w10").Value = TextBox45.Value
Sheets("Janvier 2012").Range("u10").Value = TextBox46.Value
Sheets("Janvier 2012").Range("y10").Value = TextBox42.Value
Sheets("Janvier 2012").Range("ac10").Value = TextBox43.Value
Sheets("Janvier 2012").Range("aa10").Value = TextBox44.Value
Sheets("Janvier 2012").Range("ab10").Value = TextBox47.Value
Sheets("Janvier 2012").Range("z10").Value = TextBox48.Value
Sheets("Janvier 2012").Range("ad10").Value = TextBox49.Value
Sheets("Janvier 2012").Range("aj10").Value = TextBox50.Value
Sheets("Janvier 2012").Range("ah10").Value = TextBox51.Value
Sheets("Janvier 2012").Range("ag10").Value = TextBox52.Value
Sheets("Janvier 2012").Range("ay10").Value = TextBox79.Value
Sheets("Janvier 2012").Range("p10").Value = TextBox81.Value
Sheets("Janvier 2012").Range("az10").Value = TextBox83.Value
Sheets("Janvier 2012").Range("ba10").Value = TextBox85.Value
Sheets("Janvier 2012").Range("bb10").Value = TextBox87.Value
Sheets("Janvier 2012").Range("bc10").Value = TextBox91.Value
Sheets("Janvier 2012").Range("bd10").Value = TextBox93.Value
Sheets("Janvier 2012").Range("be10").Value = TextBox95.Value
Sheets("Janvier 2012").Range("bf10").Value = TextBox89.Value
Sheets("Janvier 2012").Range("bg10").Value = TextBox99.Value
Sheets("Janvier 2012").Range("bi10").Value = TextBox97.Value
Sheets("Janvier 2012").Range("ah43").Value = TextBox100.Value
Sheets("Janvier 2012").Range("cn10").Value = TextBox78.Value
Sheets("Janvier 2012").Range("co10").Value = TextBox80.Value
Sheets("Janvier 2012").Range("bo10").Value = TextBox82.Value
Sheets("Janvier 2012").Range("br10").Value = TextBox84.Value
Sheets("Janvier 2012").Range("cp10").Value = TextBox86.Value
Sheets("Janvier 2012").Range("cq10").Value = TextBox90.Value
Sheets("Janvier 2012").Range("bx10").Value = TextBox92.Value
Sheets("Janvier 2012").Range("ca10").Value = TextBox94.Value
Sheets("Janvier 2012").Range("cd10").Value = TextBox88.Value
Sheets("Janvier 2012").Range("cg10").Value = TextBox98.Value
Sheets("Janvier 2012").Range("cj10").Value = TextBox96.Value
End If

.../... (je ne peu pas mettre tout le texte car trop long, mais il y a 31 paragraphe comme ce du haut et bas)

If OptionButton29 = True Then
Sheets("Janvier 2012").Range("c36").Value = TextBox13.Value
Sheets("Janvier 2012").Range("b36").Value = TextBox10.Value
Sheets("Janvier 2012").Range("d36").Value = TextBox12.Value
Sheets("Janvier 2012").Range("f36").Value = TextBox21.Value
Sheets("Janvier 2012").Range("e36").Value = TextBox22.Value
Sheets("Janvier 2012").Range("g36").Value = TextBox23.Value
Sheets("Janvier 2012").Range("m36").Value = TextBox30.Value
Sheets("Janvier 2012").Range("n36").Value = TextBox31.Value
Sheets("Janvier 2012").Range("s36").Value = TextBox32.Value
Sheets("Janvier 2012").Range("l36").Value = TextBox36.Value
Sheets("Janvier 2012").Range("r36").Value = TextBox38.Value
Sheets("Janvier 2012").Range("t36").Value = TextBox39.Value
Sheets("Janvier 2012").Range("x36").Value = TextBox40.Value
Sheets("Janvier 2012").Range("v36").Value = TextBox41.Value
Sheets("Janvier 2012").Range("w36").Value = TextBox45.Value
Sheets("Janvier 2012").Range("u36").Value = TextBox46.Value
Sheets("Janvier 2012").Range("y36").Value = TextBox42.Value
Sheets("Janvier 2012").Range("ac36").Value = TextBox43.Value
Sheets("Janvier 2012").Range("aa36").Value = TextBox44.Value
Sheets("Janvier 2012").Range("ab36").Value = TextBox47.Value
Sheets("Janvier 2012").Range("z36").Value = TextBox48.Value
Sheets("Janvier 2012").Range("ad36").Value = TextBox49.Value
Sheets("Janvier 2012").Range("aj36").Value = TextBox50.Value
Sheets("Janvier 2012").Range("ah36").Value = TextBox51.Value
Sheets("Janvier 2012").Range("ag36").Value = TextBox52.Value
Sheets("Janvier 2012").Range("ay36").Value = TextBox79.Value
Sheets("Janvier 2012").Range("p36").Value = TextBox81.Value
Sheets("Janvier 2012").Range("az36").Value = TextBox83.Value
Sheets("Janvier 2012").Range("ba36").Value = TextBox85.Value
Sheets("Janvier 2012").Range("bb36").Value = TextBox87.Value
Sheets("Janvier 2012").Range("bc36").Value = TextBox91.Value
Sheets("Janvier 2012").Range("bd36").Value = TextBox93.Value
Sheets("Janvier 2012").Range("be36").Value = TextBox95.Value
Sheets("Janvier 2012").Range("bf36").Value = TextBox89.Value
Sheets("Janvier 2012").Range("bg36").Value = TextBox99.Value
Sheets("Janvier 2012").Range("bi36").Value = TextBox97.Value
Sheets("Janvier 2012").Range("ah43").Value = TextBox100.Value
Sheets("Janvier 2012").Range("cn36").Value = TextBox78.Value
Sheets("Janvier 2012").Range("co36").Value = TextBox80.Value
Sheets("Janvier 2012").Range("bo36").Value = TextBox82.Value
Sheets("Janvier 2012").Range("br36").Value = TextBox84.Value
Sheets("Janvier 2012").Range("cp36").Value = TextBox86.Value
Sheets("Janvier 2012").Range("cq36").Value = TextBox90.Value
Sheets("Janvier 2012").Range("bx36").Value = TextBox92.Value
Sheets("Janvier 2012").Range("ca36").Value = TextBox94.Value
Sheets("Janvier 2012").Range("cd36").Value = TextBox88.Value
Sheets("Janvier 2012").Range("cg36").Value = TextBox98.Value
Sheets("Janvier 2012").Range("cj36").Value = TextBox96.Value
End If

If OptionButton30 = True Then
Sheets("Janvier 2012").Range("c37").Value = TextBox13.Value
Sheets("Janvier 2012").Range("b37").Value = TextBox10.Value
Sheets("Janvier 2012").Range("d37").Value = TextBox12.Value
Sheets("Janvier 2012").Range("f37").Value = TextBox21.Value
Sheets("Janvier 2012").Range("e37").Value = TextBox22.Value
Sheets("Janvier 2012").Range("g37").Value = TextBox23.Value
Sheets("Janvier 2012").Range("m37").Value = TextBox30.Value
Sheets("Janvier 2012").Range("n37").Value = TextBox31.Value
Sheets("Janvier 2012").Range("s37").Value = TextBox32.Value
Sheets("Janvier 2012").Range("l37").Value = TextBox36.Value
Sheets("Janvier 2012").Range("r37").Value = TextBox38.Value
Sheets("Janvier 2012").Range("t37").Value = TextBox39.Value
Sheets("Janvier 2012").Range("x37").Value = TextBox40.Value
Sheets("Janvier 2012").Range("v37").Value = TextBox41.Value
Sheets("Janvier 2012").Range("w37").Value = TextBox45.Value
Sheets("Janvier 2012").Range("u37").Value = TextBox46.Value
Sheets("Janvier 2012").Range("y37").Value = TextBox42.Value
Sheets("Janvier 2012").Range("ac37").Value = TextBox43.Value
Sheets("Janvier 2012").Range("aa37").Value = TextBox44.Value
Sheets("Janvier 2012").Range("ab37").Value = TextBox47.Value
Sheets("Janvier 2012").Range("z37").Value = TextBox48.Value
Sheets("Janvier 2012").Range("ad37").Value = TextBox49.Value
Sheets("Janvier 2012").Range("aj37").Value = TextBox50.Value
Sheets("Janvier 2012").Range("ah37").Value = TextBox51.Value
Sheets("Janvier 2012").Range("ag37").Value = TextBox52.Value
Sheets("Janvier 2012").Range("ay37").Value = TextBox79.Value
Sheets("Janvier 2012").Range("p37").Value = TextBox81.Value
Sheets("Janvier 2012").Range("az37").Value = TextBox83.Value
Sheets("Janvier 2012").Range("ba37").Value = TextBox85.Value
Sheets("Janvier 2012").Range("bb37").Value = TextBox87.Value
Sheets("Janvier 2012").Range("bc37").Value = TextBox91.Value
Sheets("Janvier 2012").Range("bd37").Value = TextBox93.Value
Sheets("Janvier 2012").Range("be37").Value = TextBox95.Value
Sheets("Janvier 2012").Range("bf37").Value = TextBox89.Value
Sheets("Janvier 2012").Range("bg37").Value = TextBox99.Value
Sheets("Janvier 2012").Range("bi37").Value = TextBox97.Value
Sheets("Janvier 2012").Range("ah43").Value = TextBox100.Value
Sheets("Janvier 2012").Range("cn37").Value = TextBox78.Value
Sheets("Janvier 2012").Range("co37").Value = TextBox80.Value
Sheets("Janvier 2012").Range("bo37").Value = TextBox82.Value
Sheets("Janvier 2012").Range("br37").Value = TextBox84.Value
Sheets("Janvier 2012").Range("cp37").Value = TextBox86.Value
Sheets("Janvier 2012").Range("cq37").Value = TextBox90.Value
Sheets("Janvier 2012").Range("bx37").Value = TextBox92.Value
Sheets("Janvier 2012").Range("ca37").Value = TextBox94.Value
Sheets("Janvier 2012").Range("cd37").Value = TextBox88.Value
Sheets("Janvier 2012").Range("cg37").Value = TextBox98.Value
Sheets("Janvier 2012").Range("cj37").Value = TextBox96.Value
End If

If OptionButton31 = True Then
Sheets("Janvier 2012").Range("c38").Value = TextBox13.Value
Sheets("Janvier 2012").Range("b38").Value = TextBox10.Value
Sheets("Janvier 2012").Range("d38").Value = TextBox12.Value
Sheets("Janvier 2012").Range("f38").Value = TextBox21.Value
Sheets("Janvier 2012").Range("e38").Value = TextBox22.Value
Sheets("Janvier 2012").Range("g38").Value = TextBox23.Value
Sheets("Janvier 2012").Range("m38").Value = TextBox30.Value
Sheets("Janvier 2012").Range("n38").Value = TextBox31.Value
Sheets("Janvier 2012").Range("s38").Value = TextBox32.Value
Sheets("Janvier 2012").Range("l38").Value = TextBox36.Value
Sheets("Janvier 2012").Range("r38").Value = TextBox38.Value
Sheets("Janvier 2012").Range("t38").Value = TextBox39.Value
Sheets("Janvier 2012").Range("x38").Value = TextBox40.Value
Sheets("Janvier 2012").Range("v38").Value = TextBox41.Value
Sheets("Janvier 2012").Range("w38").Value = TextBox45.Value
Sheets("Janvier 2012").Range("u38").Value = TextBox46.Value
Sheets("Janvier 2012").Range("y38").Value = TextBox42.Value
Sheets("Janvier 2012").Range("ac38").Value = TextBox43.Value
Sheets("Janvier 2012").Range("aa38").Value = TextBox44.Value
Sheets("Janvier 2012").Range("ab38").Value = TextBox47.Value
Sheets("Janvier 2012").Range("z38").Value = TextBox48.Value
Sheets("Janvier 2012").Range("ad38").Value = TextBox49.Value
Sheets("Janvier 2012").Range("aj38").Value = TextBox50.Value
Sheets("Janvier 2012").Range("ah38").Value = TextBox51.Value
Sheets("Janvier 2012").Range("ag38").Value = TextBox52.Value
Sheets("Janvier 2012").Range("ay38").Value = TextBox79.Value
Sheets("Janvier 2012").Range("p38").Value = TextBox81.Value
Sheets("Janvier 2012").Range("az38").Value = TextBox83.Value
Sheets("Janvier 2012").Range("ba38").Value = TextBox85.Value
Sheets("Janvier 2012").Range("bb38").Value = TextBox87.Value
Sheets("Janvier 2012").Range("bc38").Value = TextBox91.Value
Sheets("Janvier 2012").Range("bd38").Value = TextBox93.Value
Sheets("Janvier 2012").Range("be38").Value = TextBox95.Value
Sheets("Janvier 2012").Range("bf38").Value = TextBox89.Value
Sheets("Janvier 2012").Range("bg38").Value = TextBox99.Value
Sheets("Janvier 2012").Range("bi38").Value = TextBox97.Value
Sheets("Janvier 2012").Range("ah43").Value = TextBox100.Value
Sheets("Janvier 2012").Range("cn38").Value = TextBox78.Value
Sheets("Janvier 2012").Range("co38").Value = TextBox80.Value
Sheets("Janvier 2012").Range("bo38").Value = TextBox82.Value
Sheets("Janvier 2012").Range("br38").Value = TextBox84.Value
Sheets("Janvier 2012").Range("cp38").Value = TextBox86.Value
Sheets("Janvier 2012").Range("cq38").Value = TextBox90.Value
Sheets("Janvier 2012").Range("bx38").Value = TextBox92.Value
Sheets("Janvier 2012").Range("ca38").Value = TextBox94.Value
Sheets("Janvier 2012").Range("cd38").Value = TextBox88.Value
Sheets("Janvier 2012").Range("cg38").Value = TextBox98.Value
Sheets("Janvier 2012").Range("cj38").Value = TextBox96.Value
End If
Unload Me
End Sub

Car quand je veux exécuter l'userform il me dit :

Erreur de compilation :
Procédure trop grande

Merci à tous pour votre aide.

Cordialement
 
C

Compte Supprimé 979

Guest
Re : Trop grand...

Bonsoir

Ben tu m'étonnes que VBA est pas content ... pffft

En général on utilise une boucle pour ce genre de chose, mais il faut que la numérotation des textBox se suivent

Sinon tu as la possibilité de mettre chaque morceau dans une Sub différente
Code:
Private Sub CommandButton1_Click()If OptionButton1 = True Then Call NomSub1
If OptionButton2 = True Then Call NomSub2
' Etc ....
End Sub

Dans ta Sub1, Sub2, SubX tu as toutes tes mises à jour à faire

A+
 

Grand Chaman Excel

XLDnaute Impliqué
Re : Trop grand...

Bonjour,

Une idée (non testée) comme ça :
Comme tu sembles changer de ligne selon le "optionbutton" choisi :

VB:
Sub toto()
Dim i As Integer

'Trouve la ligne selon le OptionButton choisi
If optionbutton1 Then i = 8
If optionbutton2 Then i = 9
'...
If optionbutton31 Then i = 38

With Sheets("Janvier 2012")
    .Range("C" & i) = textbox13.Value
    .Range("B" & i) = textbox10.Value
    .Range("D" & i) = textbox12.Value
    .Range("F" & i) = textbox21.Value
    '...
    .Range("CJ" * i) = textbox96.Value
End With


End Sub

A essayer
A+
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Trop grand...

Bonsoir le fil, bonsoir le forum,

L'idée du Grand Chaman Excel me semble la plus simple ! On pourrait aussi utiliser une boucle sur les OptionButton :
Code:
Dim x As Byte
Dim i As Byte

'Trouve la ligne selon le OptionButton choisi
For x = 1 To 31
    If Me.Controls("OptionButton" & x).Value = True Then i = x + 7
    Exit For
Next x
With Sheets("Janvier 2012")
    .Range("C" & i) = textbox13.Value
    .Range("B" & i) = textbox10.Value
    .Range("D" & i) = textbox12.Value
    .Range("F" & i) = textbox21.Value
    '...
   .Range("CJ" * i) = textbox96.Value
End With
 

Papou-net

XLDnaute Barbatruc
Re : Trop grand...

Bonsoir Hollowman06, Bruno, le Forum,

Ou bien à l'aide d'une boucle :

Code:
Private Sub CommandButton1_Click()
For Each ctl In Me.Controls
  If TypeOf ctl Is MsForms.OptionButton Then
    If ctl.Value = True Then
      Transfert CLng(Replace(ctl.Name, "OptionButton", "")) + 7
  Next
End Sub

Sub Transfert(Col As Long)
With Sheets("Janvier 2012")
  .Range("c" & Col).Value = TextBox13.Value
  .Range("b" & Col).Value = TextBox10.Value
  .Range("d" & Col).Value = TextBox12.Value
  .Range("f" & Col).Value = TextBox21.Value
  .Range("e" & Col).Value = TextBox22.Value
  .Range("g" & Col).Value = TextBox23.Value
  ... Je n'ai pas eu
  ... le courage
  ... de continuer
  .Range("cq" & Col).Value = TextBox90.Value
  .Range("bx" & Col).Value = TextBox92.Value
  .Range("ca" & Col).Value = TextBox94.Value
  .Range("cd" & Col).Value = TextBox88.Value
  .Range("cg" & Col).Value = TextBox98.Value
  .Range("cj" & Col).Value = TextBox96.Value
End With
End Sub
La 1ère procédure analyse tous les contrôles de ton UserForm et si ce sont des boutons d'option, elle définit la colonne en ajoutant de la façon suivante :

Elle extrait le chiffre de l'optionbutton en lisant la valeur numérique en fin de son nom

Puis elle exécute la procédure Transfert qui affecte les valeurs aux bonnes cellules. Cette procédure n'est à écrire qu'une seule fois, mais tu dois compléter les lignes manquantes, ce que je n'ai pas eu le courage de faire.
Si , comme te l'a supputé Bruno, tes contrôles étaient ordonnés numériquement, cette procédure pourrait elle-même faire appel à une boucle ce qui simplifierait encore davantage le code

Mais ça devrait fonctionner en l'état. Je n'ai pas testé et pour cause.

Cordialement.

Oups, je suis à la bourre. Bonsoir à vous Grand Chaman et Robert.
 
Dernière édition:

Excel-lent

XLDnaute Barbatruc
Re : Trop grand...

Salut Hollowman06,
Bienvenu sur le forum,

L'idéal serait d'intégrer des boucles pour raccourcir ton code.

Mais comme est bati ton fichier, malheureusement tu ne peux pas (du moins j'ai pas trouvé).

La raison :
-> la structure de ton tableau : les cellules à remplir ne sont pas espacés de façon régulière, ni mathématique (empêchant toutes boucles!)
-> et/ou les noms donnés à tes TextBox

Seul conseil que je peux te donner pour raccourcir ton code, c'est de sélectionner ton fameux onglet : "janvier 2012". T'évitant ainsi de répéter à chaque fois Sheets("Janvier 2012")

Sinon tu peux le faire de la façon suivante :
With Sheets("Janvier 2012")
...
End With

T'évitant ainsi de sélectionner la feuille (gain de temps au niveau de temps d’exécution de ta macro).

Cela raccourcira ton code, mais ne résoudra pas ton problème.

Bonne fin de soirée

Edition : le temps d'écrire, et je constate que nous pensions tous un peu à la même chose : "c'est pas pratique". Faudrait revoir le tableau et/ou le nom des TextBox!
 
Dernière édition:

ROGER2327

XLDnaute Barbatruc
Re : Trop grand...

Bonjour à tous



Une variante non testée faute de support :​
VB:
Private Sub CommandButton1_Click()
Dim NomFl&, OptBtn(30) As Boolean, Ctrl As Object

    NomFl = "Janvier 2012"

    For Each Ctrl In Me.Controls
        On Error Resume Next
        If TypeOf Ctrl Is MsForms.OptionButton Then OptBtn(CLng(Replace(Ctrl.Name, "OptionButton", "")) - 1) = Ctrl.Value
        On Error GoTo 0
    Next

    With Worksheets(NomFl)
        For i = 0 To 30
            If OptBtn(i) Then
                .Range("C8").Offset(i).Value = TextBox13.Value
                .Range("B8").Offset(i).Value = TextBox10.Value
                .Range("D8").Offset(i).Value = TextBox12.Value
                .Range("F8").Offset(i).Value = TextBox21.Value
                .Range("E8").Offset(i).Value = TextBox22.Value
                .Range("G8").Offset(i).Value = TextBox23.Value
                .Range("M8").Offset(i).Value = TextBox30.Value
                .Range("N8").Offset(i).Value = TextBox31.Value
                .Range("S8").Offset(i).Value = TextBox32.Value
                .Range("L8").Offset(i).Value = TextBox36.Value
                .Range("R8").Offset(i).Value = TextBox38.Value
                .Range("T8").Offset(i).Value = TextBox39.Value
                .Range("X8").Offset(i).Value = TextBox40.Value
                .Range("V8").Offset(i).Value = TextBox41.Value
                .Range("W8").Offset(i).Value = TextBox45.Value
                .Range("U8").Offset(i).Value = TextBox46.Value
                .Range("Y8").Offset(i).Value = TextBox42.Value
                .Range("AC8").Offset(i).Value = TextBox43.Value
                .Range("AA8").Offset(i).Value = TextBox44.Value
                .Range("AB8").Offset(i).Value = TextBox47.Value
                .Range("Z8").Offset(i).Value = TextBox48.Value
                .Range("AD8").Offset(i).Value = TextBox49.Value
                .Range("AJ8").Offset(i).Value = TextBox50.Value
                .Range("AH8").Offset(i).Value = TextBox51.Value
                .Range("AG8").Offset(i).Value = TextBox52.Value
                .Range("AY8").Offset(i).Value = TextBox79.Value
                .Range("P8").Offset(i).Value = TextBox81.Value
                .Range("AZ8").Offset(i).Value = TextBox83.Value
                .Range("BA8").Offset(i).Value = TextBox85.Value
                .Range("BB8").Offset(i).Value = TextBox87.Value
                .Range("BC8").Offset(i).Value = TextBox91.Value
                .Range("BD8").Offset(i).Value = TextBox93.Value
                .Range("BE8").Offset(i).Value = TextBox95.Value
                .Range("BF8").Offset(i).Value = TextBox89.Value
                .Range("BG8").Offset(i).Value = TextBox99.Value
                .Range("BI8").Offset(i).Value = TextBox97.Value
                .Range("AH43").Offset(i).Value = TextBox100.Value
                .Range("CN8").Offset(i).Value = TextBox78.Value
                .Range("CO8").Offset(i).Value = TextBox80.Value
                .Range("BO8").Offset(i).Value = TextBox82.Value
                .Range("BR8").Offset(i).Value = TextBox84.Value
                .Range("CP8").Offset(i).Value = TextBox86.Value
                .Range("CQ8").Offset(i).Value = TextBox90.Value
                .Range("BX8").Offset(i).Value = TextBox92.Value
                .Range("CA8").Offset(i).Value = TextBox94.Value
                .Range("CD8").Offset(i).Value = TextBox88.Value
                .Range("CG8").Offset(i).Value = TextBox98.Value
                .Range("CJ8").Offset(i).Value = TextBox96.Value
            End If
        Next
    End With

    Unload Me
End Sub


Bonne journée.


ROGER2327
#6144


Samedi 7 Tatane 139 (Saint Biribi, taulier - fête Suprême Quarte)
2 Thermidor An CCXX, 0,4536h - bouillon-blanc
2012-W29-5T01:05:19Z
 
Dernière édition:

Hollowman06

XLDnaute Nouveau
Re : Trop grand...

Bonjour et merci à tous pour votre réactivité !

Malgré les nombreux essais j'ai toujours un message d'erreur.
Je vous met le fichier en PJ pour mieux comprendre.

Merci encore et bonne soirée !
 

Pièces jointes

  • Entrées-Sorties CTVA 2012 V2.zip
    763.7 KB · Affichages: 41

ROGER2327

XLDnaute Barbatruc
Re : Trop grand...

Bonsoir à tous


Avec un support, c'est plus pratique pour mettre au point.
Après remplacement de Dim NomFl& par Dim NomFl$ (une étourderie...), voyez si le résultat est convenable.​



ROGER2327
#6149


Samedi 7 Tatane 139 (Saint Biribi, taulier - fête Suprême Quarte)
2 Thermidor An CCXX, 9,0612h - bouillon-blanc
2012-W29-5T21:44:49Z
 

Pièces jointes

  • Copie de Entrées-Sorties CTVA 2012 V2.zip
    758.2 KB · Affichages: 44
  • Copie de Entrées-Sorties CTVA 2012 V2.zip
    758.2 KB · Affichages: 59
  • Copie de Entrées-Sorties CTVA 2012 V2.zip
    758.2 KB · Affichages: 58
Dernière édition:

Fred0o

XLDnaute Barbatruc
Re : Trop grand...

Bonsoir à tous,

Un peu plus "Brutal" que le code de ROGER2327, mais cela semble fonctionner :
VB:
Private Sub CommandButton1_Click()
    If OptionButton1 = True Then
        i = 8
    ElseIf OptionButton2 = True Then
        i = 9
    ElseIf OptionButton3 = True Then
        i = 10
    ElseIf OptionButton4 = True Then
        i = 11
    ElseIf OptionButton5 = True Then
        i = 12
    ElseIf OptionButton6 = True Then
        i = 13
    ElseIf OptionButton7 = True Then
        i = 14
    ElseIf OptionButton8 = True Then
        i = 15
    ElseIf OptionButton9 = True Then
        i = 16
    ElseIf OptionButton10 = True Then
        i = 17
    ElseIf OptionButton11 = True Then
        i = 18
    ElseIf OptionButton12 = True Then
        i = 19
    ElseIf OptionButton13 = True Then
        i = 20
    ElseIf OptionButton14 = True Then
        i = 21
    ElseIf OptionButton15 = True Then
        i = 22
    ElseIf OptionButton16 = True Then
        i = 23
    ElseIf OptionButton17 = True Then
        i = 24
    ElseIf OptionButton18 = True Then
        i = 25
    ElseIf OptionButton19 = True Then
        i = 26
    ElseIf OptionButton20 = True Then
        i = 27
    ElseIf OptionButton21 = True Then
        i = 28
    ElseIf OptionButton22 = True Then
        i = 29
    ElseIf OptionButton23 = True Then
        i = 30
    ElseIf OptionButton24 = True Then
        i = 31
    End If
    With Sheets("Janvier 2012")
        .Range("c" & i) = TextBox13.Value
        .Range("b" & i) = TextBox10.Value
        .Range("d" & i) = TextBox12.Value
        .Range("f" & i) = TextBox21.Value
        .Range("e" & i) = TextBox22.Value
        .Range("g" & i) = TextBox23.Value
        .Range("m" & i) = TextBox30.Value
        .Range("n" & i) = TextBox31.Value
        .Range("s" & i) = TextBox32.Value
        .Range("l" & i) = TextBox36.Value
        .Range("r" & i) = TextBox38.Value
        .Range("t" & i) = TextBox39.Value
        .Range("x" & i) = TextBox40.Value
        .Range("v" & i) = TextBox41.Value
        .Range("w" & i) = TextBox45.Value
        .Range("u" & i) = TextBox46.Value
        .Range("y" & i) = TextBox42.Value
        .Range("ac" & i) = TextBox43.Value
        .Range("aa" & i) = TextBox44.Value
        .Range("ab" & i) = TextBox47.Value
        .Range("z" & i) = TextBox48.Value
        .Range("ad" & i) = TextBox49.Value
        .Range("aj" & i) = TextBox50.Value
        .Range("ah" & i) = TextBox51.Value
        .Range("ag" & i) = TextBox52.Value
        .Range("ay" & i) = TextBox79.Value
        .Range("p" & i) = TextBox81.Value
        .Range("az" & i) = TextBox83.Value
        .Range("ba" & i) = TextBox85.Value
        .Range("bb" & i) = TextBox87.Value
        .Range("bc" & i) = TextBox91.Value
        .Range("bd" & i) = TextBox93.Value
        .Range("be" & i) = TextBox95.Value
        .Range("bf" & i) = TextBox89.Value
        .Range("bg" & i) = TextBox99.Value
        .Range("bi" & i) = TextBox97.Value
        .Range("cn" & i) = TextBox78.Value
        .Range("co" & i) = TextBox80.Value
        .Range("bo" & i) = TextBox82.Value
        .Range("br" & i) = TextBox84.Value
        .Range("cp" & i) = TextBox86.Value
        .Range("cq" & i) = TextBox90.Value
        .Range("bx" & i) = TextBox92.Value
        .Range("ca" & i) = TextBox94.Value
        .Range("cd" & i) = TextBox88.Value
        .Range("cg" & i) = TextBox98.Value
        .Range("cj" & i) = TextBox96.Value
        .Range("ah43") = TextBox100.Value
    End With
    Unload Me
End Sub

A+
 

Papou-net

XLDnaute Barbatruc
Re : Trop grand...

Bonsoir Hollowman06,
Bonsoir à tous,

Hollowman, ma proposition fonctionne très bien sur la copie de ton fichier (je n'ai pas testé les autres solutions proposées).

Pour info, j'ai validé les dates du 1, 4 et 8 janvier et comme je n'avais pas saisi de valeurs dans les textbox, ces lignes sont vides sur la feuille de Janvier. J'ai également supprimé une multitude de lignes de code qui n'étaient pas utiles.

Je te laisse le soin de tester de ton côté.

Cordialement.

Oups, bonsoir Roger et Fredo.
 

Pièces jointes

  • Copie de Entrées-Sorties CTVA 2012 V2.zip
    764.9 KB · Affichages: 49
  • Copie de Entrées-Sorties CTVA 2012 V2.zip
    764.9 KB · Affichages: 52
  • Copie de Entrées-Sorties CTVA 2012 V2.zip
    764.9 KB · Affichages: 44

Staple1600

XLDnaute Barbatruc
Re : Trop grand...

Bonsoir/Bonjour à tous


Je verrai un truc dans ce genre là, mais moi aussi j'ai pas le courage de me remplir l'array
VB:
Sub test() 'test OK mais avec uniquement 3 textbox présents sur la feuille
'et aucun autre controle sur la feuille
'idée à creuser donc et à améliorer
Dim adr, optB, TtxtB, j%
adr = Array("a", "b", "c") 'adresses  des cellules
opt = Array(1, 2, 3) ' les optionsButton
TtxtB = Array(1, 2, 3)' numéro des TextBox (issus de la BO Controles)
For j = LBound(adr) To UBound(adr)
'MsgBox ActiveSheet.Shapes("TextBox" & TtxtB(j)).Name 'POUR TEST
'MsgBox ActiveSheet.Cells(opt(j), adr(j)).Address ' POUR TEST
'//////
'ActiveSheet.Cells(opt(j), adr(j)).Value = ActiveSheet.Shapes("TextBox" & TtxtB(j)).Value ' PAS OK
ActiveSheet.Cells(opt(j), adr(j)).Value = ActiveSheet.OLEObjects(TtxtB(j)).Object.Value 'OK
'//////
Next j
End Sub

Je suis sur qu'il y aura bien un courageux parmi nous pour les remplir les tableaux, non ? ;)
 
Dernière édition:

Papou-net

XLDnaute Barbatruc
Re : Trop grand...

Bonjour à tous,

Bonjour Hollowman06,

Ce fichier m'intéressant tout particulièrement, j'ai entrepris de poursuivre son étude.

Bien qu'il soit encore possible de simplifier certaines parties du code, il est déjà énormément allégé par rapport à son origine. Pour aller plus loin, il faudrait renommer, de façon structurée, l'ensemble des feuilles et des contrôles. C'est-à-dire refondre entièrement le projet. Vaste tâche.

Voici donc les principaux points améliorés :

J'ai créé un module de classe pour gérer les 31 boutons de sélection du jour. Une liste déroulante m'aurait paru plus simple mais, comme pour le reste, j'ai voulu rester dans la structure générale pré-établie. Désormais, les boutons ne s'affichent qu'en fonction du nombre de jours dans le mois considéré, ce qui évite de fausses manipulations. Autre détail : le bouton Valider de UserForm1 est désactivé si aucun bouton de date n'est cliqué, ce qui évite là encore une erreur potentielle.

Pour gérer l'enregistrement des données par une boucle, et non plus par une longue liste de code, j'ai inséré les noms de colonnes dans la propriété Tag des TextBox. La boucle n'a plus qu'à lire ce tag pour affecter les données à la bonne colonne.

J'ai crée un nouveau formulaire pour le choix du mois de saisie. Ce UserForm2 se lance lorsqu'on clique sur le bouton Entrées Données et affiche une série de boutons d'option pour sélectionner le mois. Le bouton Valider active la feuille correspondante et affiche le formulaire principal. L'affichage des feuilles en cliquant sur les noms de mois est resté inchangé, il convient donc uniquement pour la lecture des données.

Je pense alors que ce projet est désormais totalement opérationnel, du moins dans le cadre de l'année 2012.

Je te laisse le soin d'expérimenter à ta guise, et si tu as des demandes particulières, n'hésite pas.

En te souhaitant un bon week-end.

Cordialement.

PS : je me suis fait plaisir.
 

Pièces jointes

  • Copie 01 de Entrées-Sorties CTVA 2012 V2.zip
    754.2 KB · Affichages: 43
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Trop grand...

Bonjour Papounet


Je viens de m'apercevoir que j'ai suivi le même cheminement que Banzai64 (que je salue au passage), sur l'autre forum dans mon premier message
https://www.excel-downloads.com/threads/trop-grand.188975/

Lui au moins a eu le courage d'aller jusqu'au bout

PS: A tous mes petits camarades de jeux, on fait quoi devant les cas de multipostage ???
Car si j'avais su qu'il y avait déjà une solution similaire sur l'autre forum, j'aurai pas perdu mon temps à rédiger (et tester) une ébauche de macro qui se trouvait déjà finalisée sur l'autre forum.
 

Statistiques des forums

Discussions
312 305
Messages
2 087 084
Membres
103 461
dernier inscrit
dams94