Macro vba excel

Résolu
cs_sigma17 Messages postés 1 Date d'inscription lundi 10 novembre 2008 Statut Membre Dernière intervention 23 février 2012 - 16 févr. 2012 à 11:42
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 - 16 févr. 2012 à 12:28
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

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 209
16 févr. 2012 à 12:28
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
3
Rejoignez-nous