Problème de select case

Bonjour à toutes et à tous

J'ai un petit soucis de débutant dans pour un select case placé dans un if.

J'ai le code ci-dessous qui:

  • vérifie une condition, (OK)
  • copie les lignes respectant cette condition (OK)
  • doit les coller dans l'onglet demandé (PAS OK)
Sub virement_auto_mr()
Dim dates
Dim ligne
Dim Jour

dates = Format(Now, "dd/mm/yyyy")
Jour = Format((Day(dates)))
For i = 11 To 20
If dates > Range("D" & i).Value And Jour = Range("C" & i).Value Then

Range("D" & i) = dates
Range("D" & i & ": O" & i).Copy

Select Case Month(dates)
Case 1
Sheets("Janvier Mr").Visible = True
Sheets("Janvier Mr").Select
Case 2
Sheets("Février Mr").Visible = True
Sheets("Février Mr").Select
Case 3
Sheets("Mars Mr").Visible = True
Sheets("Mars Mr").Select
Case 4
Sheets("Avril Mr").Visible = True
Sheets("Avril Mr").Select
Case 5
Sheets("Mai Mr").Visible = True
Sheets("Mai Mr").Select
Case 6
Sheets("Juin Mr").Visible = True
Sheets("Juin Mr").Select
Case 7
Sheets("Juillet Mr").Visible = True
Sheets("Juillet Mr").Select
Case 8
Sheets("Août Mr").Visible = True
Sheets("Août Mr").Select
Case 9
Sheets("Septembre Mr").Visible = True
Sheets("Septembre Mr").Select
Case 10
Sheets("Octobre Mr").Visible = True
Sheets("Octobre Mr").Select
Case 11
Sheets("Novembre Mr").Visible = True
Sheets("Novembre Mr").Select
Case 12
Sheets("Décembre Mr").Visible = True
Sheets("Décembre Mr").Select
End Select
Range("D65536").End(xlUp).Offset(1, 0).PasteSpecial

End If
 Next
End Sub

En fait, la copie se passe bien mais ça ne colle pas au bonne endroit, ca colle dans mon onglet en cours et pas dans l'onglet du mois d’août comme demandé bien que ça l'ouvre....

quelqu'un pourrait m'aider?

Merci par avance,

bonjour

il faut remplacer le select

Sheets("Janvier Mr").Select

par activate

Sheets("Janvier Mr").Activate

voici le code un 'peu plus prope"

fred

Sub virement_auto_mr()
Dim dates
Dim ligne
Dim Jour
Dim nom As String

dates = Format(Now, "dd/mm/yyyy")
Jour = Format((Day(dates)))
For i = 11 To 20
    If dates > Range("D" & i).Value And Jour = Range("C" & i).Value Then

    Range("D" & i) = dates
    Range("D" & i & ": O" & i).Copy

    Select Case Month(dates)
        Case 1: nom = "Janvier Mr"
        Case 2: nom = "Février Mr"
        Case 3: nom = "Mars Mr"
        Case 4: nom = "Avril Mr"
        Case 5: nom = "Mai Mr"
        Case 6: nom = "Juin Mr"
        Case 7: nom = "Juillet Mr"
        Case 8: nom = "Août Mr"
        Case 9: nom = "Septembre Mr"
        Case 10: nom = "Octobre Mr"
        Case 11: nom = "Novembre Mr"
        Case 12: nom = "Décembre Mr"
    End Select
    Sheets(nom).Visible = True
    Sheets(nom).Activate
    Range("D65536").End(xlUp).Offset(1, 0).PasteSpecial

    End If
Next
End Sub

Je viens d'essayer mais ça colle toujours dans mon onglet actuel...

le fait d'avoir le select dans le if semble poser problème.

que veux tu faire exactement dans ton pastspecial ??

quel est le nom de l'onglet source ?

peux tu mettre un fichier epurer / anonymiser pour que je regarde

fred

en fait c'est un code que j’utilisais déjà et qui fonctionnait bien pour d'autres onglets mais le fait de mettre ca dans une boucle c'est une premiere pour moi pose soucis.

en fait je copie mes lignes et les colles purement et simplement

onglet source: Virement automatique Mr

je vais préparer un fichier épurer.

merci de m'aider en tout cas!

j'ai préparé quelque chose j'attend ton fichier pour faire des essais

fred

Voila un fichier épuré.

il faut aller dans l'onglet Virement automatique.

et lancer le bouton test (après je ferai ça lors de l'ouverture de mon fichier)

ca colle dans l'onglet en cours et pas dans l'onglet de destination souhaitée

ps: pour que la condition soit respectée il faut modifier la date de la dernière opération !

13classeur1.xlsm (76.88 Ko)

re

voici une proposition

il ne faut pas que la macro soit sur la feuille mais dans un module....

j'ai aussi rajouter pour ta boucle for une fin dynamique qui va s’arrêter a la dernière ligne plutôt que d'aller jusqu’à la ligne 20 si il y en a moins ou plus...

fred

edit si tu veux que la feuille du mois s'affiche il faut remettre le .visible et .activate après la boucle for chose que j'ai pas mis

17darkangel-v001.xlsm (76.56 Ko)

c'est parfait, cela fonctionne.

oui d'habitude je les mettais dans un module ..

ce code va me permettre de modifier mes autres scripts quand j'aurais fini! je peaufinerai:)

MERCI

par contre comment dois je procéder afin que cette macro puisse se lancer seule en arrière plan à l'ouverture?

Bon merci Fred pour ton script qui fonctionne bien.

néanmoins j'ai du continuer cette macro afin qu'elle boucle la procédure.

en effet cela s'ajoute bien comme virement dans mon onglet mais du coup il me faut aussi alimenter le compte destinataire

et cela m'oblige à ajouter une partie au script.

ce code n'est pas forcement optimisé mais il fonctionne presque.

mon seul soucis est que quand je copie vers Compte CJ ou Compte TX il faut que le débit devienne crédit mais ça ne marche pas correctement.

Je joins donc un fichier épuré.

merci d'avance pour ton aide.

14classeur1.xlsm (155.52 Ko)

re

j'ai ps tout compris ce que tu voulais faire... mais j'ai fait un truc d'après ce que je pense.

tu prends ta feuille virement auto Mr et tu copie la ligne dans la feuille du mois Mr

(ca c'est fait depuis ce maint... )

maintenant en fonction de ce qui a dans paiement tu voudrais faire une copie de cette même ligne mais en inversant (le débit devient credit et le credit devient débit dans la feuille moi CJ ou TX suivant la case paiement.

c'est cela ???

si oui c'est en piece jointe.

j'ai aussi une sub a deplacer pour que le code se deroule a l'ouverture c'est expliquer

fred

15darkangel-v002.xlsm (149.14 Ko)

merci encore pour cette aide qui fonctionne presque.

tu as bien compris mon objectif sinon.

os: il manquait juste un end if pour permettre le lancement

le soucis c'est que dans mes onglets TX et CJ

Paiement Statut ne sont plus présent...


non c'est bon j'ai corrigé!!

merci à toi en tout cas


non c'est bon j'ai corrigé!!

merci à toi en tout cas

Rechercher des sujets similaires à "probleme select case"