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 Excel] Rajout d'une condition logique


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 208
    Par défaut [VBA Excel] Rajout d'une condition logique
    Bonjour

    Je viens de créer une macro qui permet d'allez sur le réseau et de lire tous les fichiers si trouvant et de récupéré sur une feuille excel en particulier a l'interieur du fichier qui contient plusieurs feuilles

    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
    Sub Prod14()
    Sheets("Production").Select
    
    
    Application.ScreenUpdating = False 'cacher l éxecution de la macro
    Dim fic As String
    Dim CL1 As Workbook, Chemin
    Dim fl As Worksheet
    Dim thomas As Worksheet
    Dim Lignecopie As Long
    
    
     
     
     
    
    
    Chemin = [Répertoire]
    fic = Dir([Répertoire] & "A200_PROD_14_LOT*.xls")
    Do Until fic = ""
         Set CL1 = Workbooks.Open(Chemin & fic)
         DoEvents
         
         Set fl = CL1.Worksheets("16") 
         Set FL2 = Workbooks("Archive-A200.xls").Sheets("Production")
         
         i = 270
    
         
         FL2.Range("A" & FL2.Range("A65536").End(xlUp).Row + 1 & ":A" & FL2.Range("A65536").End(xlUp).Row + 1 + i).Value = _
         fl.Range("B1").Value

    comme on peut le voir apres la lecture du fichier je recopie certaine lignes j'ai pas mis tout le programme complet

    le soucis ce pose est que actuellement on a mis de nouveaux produits ayant le meme nom,et les memes feuilles
    le probleme est le nom de la feuille qui a changé "ligne en rouge au-dessus"

    je voudrais continuer a me servir de ce programme pour prendre les anciens produits et les nouveaux

    j'ai tenter dans un 1er temps de mettre un choix avec Or

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set fl = CL1.Worksheets("16") Or CL1.Worksheets("11")
    mais cela ne marche pas
    donc j'ai penser a mettre une condition logique
    si c'est ce fichier je prend tel nom si c'est un autre je prend tel nom
    mais je n'arrive pas a mettre cela en place et je pense que c'est assez lourd aussi et qu'il doit y avoir plus simples


    si des personnes aurait des conseils ou un coup de main
    je suis prenneur

    Merci

  2. #2
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 208
    Par défaut
    Vu que la difference entre mes deux feuilles juste le nom qui change de 16 à 11

    j'ai tenter

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Set fl = CL1.Worksheets("1*")
    mais cela n'a rien donné j'ai aussi essayer de mettre des ? ou # pour dire que remplacer les caractères que je définissait pas et ca ne marche pas

  3. #3
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Bonjour,

    Comme ceci peut-être
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    On Error Resume Next
    Set fl = Worksheets("16")
    If fl.Name = "" Then
    Set fl = Worksheets("11")
    End If
    Si le "16" n'existe pas il prendra en compte le "11"

  4. #4
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 208
    Par défaut
    je te remercie fring ca marche

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

Discussions similaires

  1. [VBA][EXCEL]Conversion d'une chaine en single
    Par Ania dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 29/11/2005, 17h28
  2. [VBA Excel] Ajouter, supprimer une ligne ou collone range
    Par loacast dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 22/11/2005, 15h53
  3. vba excel - Comment saisir une cellule sans faire entrer
    Par brethomeau dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 15/11/2005, 17h50
  4. VBA EXCEL - Sélection d'une ligne suivant saisie
    Par brethomeau dans le forum Macros et VBA Excel
    Réponses: 48
    Dernier message: 15/11/2005, 17h41
  5. [VBA Excel] Effacer rapidement une feuille
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 24/10/2002, 13h12

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