IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

VBA reconnaissance d'une feuille sélectionnée par Select Case


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 4
    Par défaut VBA reconnaissance d'une feuille sélectionnée par Select Case
    bonjour, mon premier poste

    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 4
    Par défaut
    voilà, j'ai réussi !!! je suis fière de moi et d'un vieux copain qui m'a aidé en 12 sec

    voici le code pour la saisie de la date pour choisir ma feuille dans laquelle mes entrées du formulaire vont s'inscrire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    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
           
    ' Test pour déterminer la ligne ou inscrire la ligne de données dans la feuille qui a été choisi
        Sheets(feuille_mois).Select
        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
    je suis content mais voilà que j'ai un autre problème qui se situe au niveau de mon incrémentation. (en rouge)

    mais je vais détailler ça dans un autre topic


    Merci du moins pour ceux qui ont lu mon topic

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 4
    Par défaut


    j'ai résolu mon petit problème d'incrémentation


    voilà le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    ' Test pour déterminer la ligne ou inscrire la ligne de données dans la feuille qui a été choisi
        Sheets(feuille_mois).Select
        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("A" & 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
    wipidou je l'ai fait tout seule je suis fier et content


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VBA][Excel]Copier une feuille dans un nouveau classeur
    Par illight dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 02/10/2020, 12h51
  2. [VBA-E]appelé une feuille...?
    Par vivelesgnous dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 08/02/2006, 01h25
  3. [VBA] exportation vers une feuille précise d'un fichier xls
    Par Christophe93250 dans le forum Access
    Réponses: 2
    Dernier message: 10/01/2006, 15h36
  4. [VBA] pointer sur une feuille bien précise via inputbox
    Par beegees dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/01/2006, 19h37
  5. [VBA] Copie d'une feuille (avec graphique)
    Par ed_dexia dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 06/10/2005, 09h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo