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] Selection de Range conditionnelle


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Technicien Maintenance
    Inscrit en
    Avril 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Technicien Maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2017
    Messages : 2
    Par défaut [VBA] Selection de Range conditionnelle
    Bonjour à tous,

    Je viens à vous en quête de savoir, je travaille actuellement sur un classeur permettant de comparer les frais de déplacement payés par notre société entre les frais versés actuellement, et la réforme à venir.

    Le but étant d'automatiser en partie le remplissage du classeur, plutôt que de rentrer manuellement chaque semaine de l'année (les collègues ne sont pas chaud pour passer plusieurs jours à remplir un classeur excel, ceci n'étant pas notre métier).

    Voici l'état d'avancement, les conditions pour faire varier les plages sont à sélectionner dans les listes déroulantes sur fond rougeâtre, et les éléments du code "bateau" avec en commentaires les explications rapides.

    Nom : capture vba.jpg
Affichages : 970
Taille : 373,6 Ko

    Tout d'abord, que pensez vous de la méthode employée, et avez vous une astuce pour faire varier les plages à copier et destinatrices en fonction des éléments sélectionnés dans les listes déroulantes ?

    Merci par avance pour votre lecture.

    Bien cordialement,

    Maxime

  2. #2
    Membre Expert
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 703
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 703
    Par défaut
    Bonjour et bienvenue au forum

    Pourrais-tu faire un copier-coller de ton code (et le mettre entre balises code), ce serait plus simple à lire qu'une capture d'écran.
    Un commentaire sur ton code : évite au maximum d'utiliser les Select et Activate. N'écris pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sheets("maFeuil").Activate
    Range("A1").Select
    Selection.Copy

    Mais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("maFeuil").Range("A1").Copy
    Les Select et Activate n'entraînent souvent que des problèmes difficilement gérables.

    Je ne suis pas sûre d'avoir tout à fait compris ta question : est-ce que tu veux la chose suivante : si dans la liste déroulant on sélectionne plage1, alors tu veux que la plage de cellules nommée plage1 soit copiée?
    Si c'est cela, imaginons que la liste déroulante est en A1 dans la feuille nommée Feuil1 et que tu veux coller la plage de donnée sélectionnée à partir de la liste sur la cellule A2 de la feuille nommée Feuil2:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range(Sheets("Feuil1").Range("A1").Value).Copy destination:=Sheets("Feuil2").Range("A2")
    On récupère le nom de la plage de donnée qui est en A1 avec Sheets("Feuil1").Range("A1").Value. Et Range("toto") correspond à la plage de cellules nommées toto.

  3. #3
    Nouveau candidat au Club
    Homme Profil pro
    Technicien Maintenance
    Inscrit en
    Avril 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Technicien Maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2017
    Messages : 2
    Par défaut
    Merci pour ta bienvenue et pour ta réponse rapide.

    Le code à l'heure actuelle (modif par rapport à l'image jointe):
    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
     
    Sub valider_semaine()
    'macro pour copier une fois les choix suivants selectionnés (liste déroulantes sur plage)
    'semaine
    'deplacement
    'lieu
    'type
     
        Range("semaine_avec_we").Copy  '4 plages différentes possibles nommées
        'semaine_avec_we ; semaine_sans_we ; premiere_semaine ; derniere_semaine
     
        Sheets("TABLEAU FRAIS DE DEPLACEMENT").Select
        Range("semaine06_bu").Select
        '53 plages différentes : semaine01_bu ; ... ; semaine53_bu
        ActiveSheet.Paste
     
    End Sub
    Je me penche sur ta méthode et je vous tiens au courant.

    Merci bien.

  4. #4
    Invité
    Invité(e)
    Par défaut
    bonjour arkoss,
    Code Ton Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     Sub valider_semaine()
    'macro pour copier une fois les choix suivants selectionnés (liste déroulantes sur plage)
    'semaine
    'deplacement
    'lieu
    'type
     '4 plages différentes possibles nommées
     'semaine_avec_we ; semaine_sans_we ; premiere_semaine ; derniere_semaine
     '53 plages différentes : semaine01_bu ; ... ; semaine53_bu
        Range("semaine_avec_we").Copy Sheets("TABLEAU FRAIS DE DEPLACEMENT").Range("semaine06_bu")
     
    End Sub

Discussions similaires

  1. Réponses: 3
    Dernier message: 06/10/2014, 17h46
  2. [VBA-E] Erreur methode select classe range
    Par kdestine dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 17/09/2007, 11h05
  3. [VBA-E] incompatibité de type dans selection de rangées
    Par lucarno dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 07/05/2007, 08h01
  4. [MySQL] select avec affichage conditionnel
    Par encoupe dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 31/10/2005, 23h46
  5. [CR] selection d'enregistrement conditionnele
    Par planetevoyage dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 29/03/2005, 14h02

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