VBA reconnaissance d'une feuille sélectionnée par Select Case
bonjour, mon premier poste :D
cela concerne un mini gestionnaire de compte.
voila je désire saisir des données inscrite sur ma feuille "entrée" (date, dépôt, débit, catégories)et les faire retranscrire automatiquement dans le mois approprié (un mois pour chaque feuille) et ce une ligne à la suite de l'autre.
voici mon code de la macro, mais il bloque sur la reconnaissance de la feuille à sélectionner (en rouge) pour faire le test des lignes et inscrire les données.
merci d'avance pour votre aide !
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
| Sub Enregistrer()
'
' Enregistrer Macro
' copy de la nouvelle entrée
Sheets("Entrée").Select
Range("B23:L23").Select
Selection.Copy
' test pour déterminer sur quelle feuille (mois) inscrire la ligne de données
Sheets("Entrée").Select
feuille_mois = ActiveSheet.Name
Select Case Range("W5").Value
Case 39083 To 39113
feuille_mois = Janvier
Case 39114 To 39141
feuille_mois = Février
Case 39142 To 39172
feuille_mois = Mars
Case 39173 To 39202
feuille_mois = Avril
Case 39203 To 39233
feuille_mois = Mai
Case 39234 To 39263
feuille_mois = Juin
Case 39264 To 39294
feuille_mois = Juillet
Case 39295 To 39325
feuille_mois = Août
Case 39326 To 39355
feuille_mois = Septembre
Case 39356 To 39386
feuille_mois = Octobre
Case 39387 To 39416
feuille_mois = Novembre
Case 39417 To 39447
feuille_mois = Décembre
Case Else
MsgBox "La date entrée n'est pas valide"
End Select
' mémoriser le classeur du mois où inscrire les données
feuille_mois = ActiveSheet.Name
' Test pour déterminer la ligne ou inscrire la ligne de données dans la feuille qui a été choisi
Sheets(feuille_mois).Select ici il ne reconnait pas la feuille du mois sélectionné par le select case ci-haut
Dim ligne_de_base As Integer
valeurA2 = Range("A2").Value
If valeurA2 = "" Then
Range("A2").Select
Else
Range("A1").Select
Selection.End(xlDown).Select
ligne_de_base = ActiveCell.Row
Range("A65536" & ligne_de_base + 1).Select
End If
' memorise le numéro de la ligne où inscrire les données
ligne_de_base = ActiveCell.Row
' Enregistrement des données
Range("A" & ligne_de_base).Select
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
'remettre le formulaire "entrée" à zéro
Sheets("Entrée").Select
Range("B23,D23,F23,H23,J23,L23").Select
Selection.ClearContents
Range("B23").Select
MsgBox "La transaction est enregistrée."
End Sub |
merci beaucoup :)