Macro vba excel [Résolu]

Signaler
Messages postés
3
Date d'inscription
lundi 10 novembre 2008
Statut
Membre
Dernière intervention
23 février 2012
-
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
-
salut à tous,voici un code qui me permet de faire des tris dans une feuille et de récupérer les résultats pour les poster dans des cellules précises d'une autre feuille excel,le tout dans le même classeur.je suis amené à écrire plusieurs code de ce genre car car j'ai plusieurs feuilles "mois" que j'utilise pour remplir la feuille"gestion"
code:
Private Sub CmdButton7_Click()

Dim y As Long, e As Long, f As Long, g As Long, h As Long
Dim i As Integer, test As Boolean, sh As Worksheet

'test = False
For Each sh In ThisWorkbook.Worksheets
test = False
If sh.Name = "Aout" Then
test = True
Exit For
End If
Next sh


If test = True Then

'renseignement de la colonne de Aout de le feuille gestion

With Sheets("Aout")
For i = 1 To 300
y = Sheets("Aout").Cells(i, 1) 'on récupère la valeur du numéro de compte

e = Sheets("Aout").Cells(i, 3) 'récupère la valeur de la colonne mvt débit

f = Sheets("Aout").Cells(i, 4) 'récupère la valeur de la colonne mvt crédit

g = Sheets("Aout").Cells(i, 5) 'récupère la valeur de la colonne solde débit

h = Sheets("Aout").Cells(i, 6) 'récupère la valeur de la colonne solde crédit

If y = "411105" Then
Sheets("gestion").Cells(7, 14) = e

End If

If y = "411104" Then
Sheets("gestion").Cells(8, 14) = e

End If

If y = "411410" Then
Sheets("gestion").Cells(9, 14) = f

End If

If y = "411107" Then
Sheets("gestion").Cells(11, 14) = g

End If

If y = "411108" Then
Sheets("gestion").Cells(12, 14) = g

End If

If y = "443" Then
Sheets("gestion").Cells(14, 14) = f

End If

If y = "601101" Then
Sheets("gestion").Cells(19, 14) = e

End If

If y = "601102" Then
Sheets("gestion").Cells(20, 14) = h

End If

If y = "601104" Then
Sheets("gestion").Cells(21, 14) = h


If y = "445" Then
Sheets("gestion").Cells(25, 14) = f

Next i
End With
End If

End Sub



ma question est de savoir comment m'y prendre si les feuilles ne se trouvent pas dans le même classeur,mais les classeurs contenant les feuilles sont dans le même répertoire?
aussi si vous pouvez me donnez des astuces pour optimiser mon code,

Cordialement

1 réponse

Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
229
Bonjour,
- commence par comprendre que VBA n'est pas VB6
Tu aurais du ouvrir ta discussion dans la section Langages dérivés > VBA (ton langage de développement) ! Ce n'est pas un luxe !
- ce n'est pas non plus un luxe que de présenter ici son code entre les balises prévues à cet effet (balises code - 3ème icône en partant de la gauche)
Remontre ton ode entre balises, donc, mais auparavant :
Regarde dans ton aide VBA ce qu'est l'instruction select case et utilise-la en lieu et place de toutes ces expressions conditionnelles sur la valeur de y !
On ne verra le reste qu'après cela.


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient