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 :

activation de fichiers avec une variable


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2008
    Messages : 32
    Par défaut activation de fichiers avec une variable
    Je prépare un projet pour compiler des données provenant de plusieurs fichiers dans un seul. Lesdits fichiers ont des noms qui incluent l'année en cours i.e (saisie2008.xls vers compilation2008.xls). Je dois utiliser des variables pour prévoir les changements d'année.
    Au transfert des données. je veux activer les fichiers avec leur nom en variable, mais je retouve une erreur 9 (L'indice n'appartient pas à la sélection).
    La variable est bien définie (vérifié).
    Est-ce une erreur de déclaration?

  2. #2
    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 and ouelkom,

    Le fournisseur de boules de cristal est en rupture de stock depuis quelques jours, montre ton code qu'on puisse se faire une idée, en indiquant la ligne qui fait couiner

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2008
    Messages : 32
    Par défaut
    Voici mon code:

    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
    Sub Transfert()
    Dim fichierC As String
    Dim fichierST As String
    Application.ScreenUpdating = False
    'Composer les noms de fichier (B5=2008)
    fichierC = Worksheets("Parametres").Range("B13").Value & "Compilation" & Worksheets("Parametres").Range("B5").Value & ".xls"
    fichierST = Worksheets("Parametres").Range("B13").Value & "SaisieTemps" & Worksheets("Parametres").Range("B5").Value & ".xls"
    Workbooks.Open Filename:=fichierC
    Windows(fichierST).Activate
    'positionne le curseur à la première ligne non compilée
    Range("CompilT").Select
    Do While ActiveCell.Value = "Oui"
        ActiveCell.Offset(1, 0).Select
    Loop
     
    Do While ActiveCell.Value = "Non"
        If ActiveCell.Offset(0, -5) = "" Then GoTo vide
    ' activer le fichier Compilation et placer le curseur à la ligne suivante
        Workbooks(fichierC).Worksheets("Temps").Activate
        Range("A10000").Select
        Selection.End(xlUp).Select
        ActiveCell.Offset(1, 0).Select
    'Inscrire le nom de l'employé
        ActiveCell.FormulaR1C1 = Workbooks(fichierST).Worksheets("Parametres").Range("B9")
        ActiveCell.Offset(0, 1).Select 'positionne le curseur pour la prochaine donnée à coller
    'copie les données d'une ligne dans le fichier Compilation
        Windows(fichierST).Activate
        Range(ActiveCell.Offset(0, -6), ActiveCell.Offset(0, -2)).Copy
        Windows(fichierC).Activate
        ActiveSheet.Paste
    'copie le format de la ligne suivante
        Range(ActiveCell.Offset(1, 0), ActiveCell.Offset(1, 4)).Copy
        Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
            SkipBlanks:=False, Transpose:=False
        Application.CutCopyMode = False
         Windows(fichierST).Activate
         Application.CutCopyMode = False
      'inscrit que la ligne est compilée et se place à la ligne suivante
         ActiveCell.FormulaR1C1 = "Oui"
      ' Protège la ligne transférée
      Range(ActiveCell.Offset(0, -6), ActiveCell).Select
        Selection.Locked = True
        Selection.FormulaHidden = False
        ActiveCell.Activate
    vide:
         ActiveCell.Offset(1, 0).Select
    Loop
     
      Workbooks(fichierC).Close SaveChanges:=True
     
    End Sub
    L'erreur se produit à la ligne:

    Windows(fichierST).Activate

    Si je remplace la variable par le nom du fichier, l'erreur se produit à une autre utilisation d'une des 2 variables

Discussions similaires

  1. Réponses: 3
    Dernier message: 29/06/2015, 15h01
  2. [AC-2010] Générer une date avec une variable et les données de la date active
    Par zedcv dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 20/07/2012, 13h13
  3. Ouvrir un fichier avec une variable
    Par oliviernouhi dans le forum Langage
    Réponses: 4
    Dernier message: 24/03/2011, 16h44
  4. Problème nom de fichier généré avec une variable
    Par matlabeginer dans le forum MATLAB
    Réponses: 3
    Dernier message: 09/04/2008, 12h03
  5. Réponses: 2
    Dernier message: 16/11/2006, 13h28

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