rapidité du programme, facilité utilisateur lambda

  • Initiateur de la discussion Initiateur de la discussion gopo
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

G

gopo

Guest
Re, ou Bonjour a vous !

Voilà Je cherche a tester plusieur chose pour comparer la rapidité de mon programme, et qu'il soit plus efficasse pour un utilisateur lambda.

Programme qui met a jour 200 cellule / mois.
J'ai plusieur solution, a vous de me conseiller ( de la facilité a la complicité ) :

1) j'effectue une Mise à Jour à l'année des l'ouverture en executant la maccro CTRL+X ( lent car il met a jour 200cellule * mois )

2) je créer un UserForm( que je ne sais pas faire ) en y mettant Janvier / Février / Mars etc... pour faire une mise a jour au mois

3) je fait une maccro qui verifie si dans une cellule de base ( ou il y aura quelque chose obligatoirement si le mois a été mis a jour ) il y a quelque chose, et s'il y a quelque chose ca ne fait pas la mise a jour s'il n'y a rien bah ca la fait ! ( utilité : rapide ! et facil pour l'exterieur juste a lancé une macro )

A vous de me dire la plus efficasse je pense opté pour la 3)...

Sinon, mon code est trop long donc je ne peux pas tout mettre dans une maccro, donc je pensait appeller les fonctions dans ma fonction : est ce -> call(fonction) ??

Cordialement !

ps : je rentre chez moi je testerai demain merci a vous !

tititoto je t'aime😀
 
Re : rapidité du programme, facilité utilisateur lambda

Ci joint mes deux fichier excel, c'est vrai que cela est plus simple avec des fichier ! Hein Madame Irma ( cf : boule de cristal 😱 )

Ma macro est sur le fichier TBM ACP , c'est sur celui ci que je vérifie si la cellule est vide ou pas et c'est ici que je colle ce que j'ai copié dans TBM ACP SRC.

J'espere que mon code est claire, enfin tu commence a le connaitre maintenant a force de m'aider, et j'en profite pour te remercier encore !

ps : il y a un bug "With sans End With" ou l'inverse... j'ai pas compris il y en a bien un ... 😕

edit : le lien pour les fichiers : http://dl.free.fr/rqApPEGde
 
Dernière modification par un modérateur:
Re : rapidité du programme, facilité utilisateur lambda

voilà le code corrigé pour éviter le problème des With...End With :

Code:
Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 09/10/2008 par IDCO1
'
' Touche de raccourci du clavier: Ctrl+Maj+W
'
Dim Variable1 As String
Dim Variable2 As Single
Dim Variable3 As String
Dim Variable4 As String
Dim Variable5 As String
Dim Variable6 As String
Dim Variable7 As String
Dim Variable8 As String
Dim x As Single
Dim i As Integer
Dim j As Integer
Dim h As Integer
       
        With ThisWorkbook.Sheets("Paris Bercy")
        If .Cells(9, 7) = "" Then
               Workbooks.Open (ActiveWorkbook.Path & "\TBM ACP SRC.xls")
               Set Dest = Workbooks("TBM ACP SRC.xls")
               With Dest.Sheets("Détail ACP")
            For i = 9 To 846 Step 27
                If .Cells(i, 2) = "750670 - PARIS BERCY EXPO ACP" Then
                     MsgBox " 1er IF "
            For j = 5 To 26 Step 1
                If .Cells(i + 1, j) = "Janvier" Then
                     MsgBox "     2eme If "
                          Variable1 = .Cells(i + 8, j).Value
                          Variable2 = .Cells(i + 12, j).Value
                          Variable3 = .Cells(i + 11, j).Text
                          Variable4 = .Cells(i + 3, j).Text
                          Variable5 = .Cells(i + 14, j).Text
                          Variable6 = .Cells(i + 15, j).Text
                          Variable7 = .Cells(i + 5, j).Text
                          Variable8 = .Cells(i + 6, j).Text
                
                    With ThisWorkbook.Sheets("Paris Bercy")
                              .Cells(9, 7).Value = Variable1
                              x = (Variable2 * .Cells(9, 7).Value) / .Cells(5, 7).Value
                              .Cells(13, 7).Value = x
                              .Cells(30, 7).Value = Variable3
                              .Cells(40, 7).Value = Variable4
                              .Cells(42, 7).Value = Variable5
                              .Cells(43, 7).Value = Variable6
                              .Cells(45, 7).Value = Variable7
                              .Cells(47, 7).Value = Variable8
                         End With
                 Exit For
          End If
        Next
      Exit For
    End If
  Next
  End With
  End If
  End With
 End Sub

si je vide la cellule G9 de la feuille Paris Bercy, il passe dans les IF...
 
Re : rapidité du programme, facilité utilisateur lambda

Salut tototiti,

Merci pour ton code, ca fonctionne, MAIS..........

J'ai un soucis, ci joint 2 fichier rar utilisé avec ton code adapté :
- 1er .rar contenant les deux fichier mais seulement pour 2 agences ( ca marche pour les deux )

-2eme .rar contenant les deux fichier mais pour toute les agence ( ca marche pas, ca marche bien pour la premiere puis apres il rentre plus dans aucun IF... )


J'ai ajusté le code pour les agences, ca devrait pas posé de problème... Si je met le code du 2eme fichiers avec toutes les agences et que je le copie dans
le 1er Fichier, tout vas bien se déroulé, sauf qu'il ne rentrera pas dans le 3 If principal ...

A vous de voir ce qu'il se passe ... :s

Fichier 1 : Free - Envoyez vos documents
Fichier 2 : Free - Envoyez vos documents

Bonne appetit
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
15
Affichages
793
Retour