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 :

Sélection de feuilles spécifique pour eviter le plantage


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16
    Points : 10
    Points
    10
    Par défaut Sélection de feuilles spécifique pour eviter le plantage
    Bonjour,

    Je souhaite modifié le code ci-dessous pour l'adapter a mon tableur, en faite le code plante quand il va chercher les feuilles des collaborateurs car dans mon classeur j'ai d'autres feuilles où le C6 n'est pas une date.je veux juste qu'il parcourt seulement les feuilles des collaborateurs pour extraire et copier les cellules concernés.

    Merci pour votre aide.

    Amicalement


    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
    Sub copiemois()
    ' lib = tableau avec les libellés des mois
    Dim lib
     
    lib = Array("JANVIER", "FEVRIER", "MARS", "AVRIL", "MAI", "JUIN", "JUILLET", "AOUT", "SEPTEMBRE", "OCTOBRE", "NOVEMBRE", "DECEMBRE")
    ' on parcourt toutes les feuilles du classeur
    For Each ws In ThisWorkbook.Worksheets
     For i = 1 To 12
      If lib(i - 1) = ws.Name Then i = 99: Exit For
     Next
     ' il ne s'agit pas d'une feuille mois, il s'agit donc d'une feuille "employé"
    If i < 99 Then
      ' on détermine le mois sur base de la date trouvée en C6 sur le feuille "employé"
    '  With
     
     
    mois = Month(ws.Range("C6"))
      ' ws1 fait référence à la feuille indiquée par le mois
     
     
    Set ws1 = Worksheets(lib(mois - 1))
      ' on y recherche le nom de l'employé (B4)
    Set nom = Rows(4).Find(ws.Cells(4, 2))
      ' l'employé est trouvé
    If Not (nom Is Nothing) Then
        ' on détermine le jour du mois sur base de la date trouvée en C6
     
      jour = Day(ws.Range("C6"))
     
        ' on copie D6 et E6 sur la ligne correspondant au jour
      ws1.Cells(jour + 5, nom.Column) = ws.Range("D6")
        ws1.Cells(jour + 5, nom.Column + 1) = ws.Range("E6")
      End If
     End If
    Next
    End Sub

  2. #2
    Membre expérimenté
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2013
    Messages
    885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 885
    Points : 1 499
    Points
    1 499
    Par défaut selection des feuilles spécifiques pour éviter plantage
    Bonjour,

    La demande n'est pas claire.

    Si je comprends bien, le mois trouvé en C6 de la feuille collaborateur, entraine la copie de D6 et E6 sur la feuille mois (celui trouvé en C6) à l'intersection de la ligne jour et de la colonne nom collaborateur et collaborateur+1.

    Mais si la date n'est pas nécessairement en C6 alors où peut-elle se trouver ?
    - Est-elle obligatoirement sur la colonne C ?
    - Si oui, cette date sera t-elle la seule date sur la colonne ?
    - Les copies à faire, seront-elles toujours situées colonne D et E de la ligne ou se trouve le mois ?

    Cordialement,

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16
    Points : 10
    Points
    10
    Par défaut Sélection de feuilles spécifique pour eviter le plantage
    Bonjour Paul,

    Merci tout d'abord pour ta réponse, j'avoue que ce n'est pas trop claire,
    et je suis navré ,dans l’ensemble t'as compris tout ,voici la réponse a tes questions :

    Mais si la date n'est pas nécessairement en C6 alors où peut-elle se trouver ?c'est obligatoirement en C6 pour les collaborateurs, Les copies à faire, seront-elles toujours situées colonne D et E de la ligne ou se trouve le mois.
    Mais J'ai rajouté d'autres feuilles dans le classeur (suivi, stock, paiement) qui ne sont pas concernés par ce code , donc y aura pas de date dans le C6 et c'est la que code a planté.


    Le code plante a la ligne 17 et a la ligne 28 car pour lui il y a que des feuilles avec les mois (12) et des feuilles avec des noms des collaborateurs (en C6 date), mais j'ai rajouté d'autres feuilles qui ne seront pas concerné par ce code et qui n'auront pas de date en C6, je pense que je dois boucler le code sur seulement les feuilles des collaborateurs (avec Array) ou gerer l'erreur avec (On error resume next...)quand la feuille du collaborateur n'existe pas ;mais dans les 2 cas j'ai pas pu y aller plus loin...

    Pour conclure j'ai mis en pièce jointe 2 fichiers :
    1-avec le code qui fonctionne
    2-avec le code qui plante

    J’espère que c'est mieux expliqué
    en tout cas merci de m'avoir accordé un peu de temps
    amicalement
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. [AC-2010] DoCmd.TransferSpreadsheet pour importer une feuille spécifique d'un fichier excel
    Par l.flipper dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 14/02/2015, 21h41
  2. [XL-97] création raccourcis pour des ouvrir un feuille spécifique
    Par philippou dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/10/2010, 18h54
  3. [Toutes versions] Boucle pour sélection de feuille hierarchisé alphabétiquement
    Par mentat dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 26/04/2010, 21h18
  4. [débutant][Conception] Modélisation pour éviter le getClass()
    Par Oliveuh dans le forum Général Java
    Réponses: 9
    Dernier message: 28/06/2004, 20h00
  5. Pb affichage avec un PaintBox (pour eviter scintillement)
    Par juan64 dans le forum C++Builder
    Réponses: 7
    Dernier message: 08/04/2004, 09h21

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