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}Amiliorer une Macro


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}Amiliorer une Macro
    Je vous presente ma Macro

    le hic je voudrais y apporter une petite modif qui permet de commencer mes recopies a partir de la ligne 3

    au debut j'avais fait comme modification de sauter plus de lignes comme ca j'aurais mon espace au debut mais apres entre les donnée ca fait trop d'espace


    je voulais modifier mon code

    fl2.Range("A" & fl2.Range("A65536").End(xlUp).Row + 1).Value = _
    fl.Range("B1").Value
    Par

    fl2.Range("A3" & fl2.Range("A65536").End(xlUp).Row + 1).Value = _
    fl.Range("B1").Value

    et ca ne marche pas


    donc si vous avez une idée faite moi signe

    merci


    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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    Sub Charge()
    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
     
     
     
    Workbooks("thomas.xls").Sheets("Feuil1").Range("A2:A65536").ClearContents
    Workbooks("thomas.xls").Sheets("Feuil1").Range("B2:B65536").ClearContents
    Workbooks("thomas.xls").Sheets("Feuil1").Range("C2:C65536").ClearContents
    Workbooks("thomas.xls").Sheets("Feuil1").Range("D2:D65536").ClearContents
    Workbooks("thomas.xls").Sheets("Feuil1").Range("E2:E65536").ClearContents
    Workbooks("thomas.xls").Sheets("Feuil1").Range("F2:F65536").ClearContents
    Workbooks("thomas.xls").Sheets("Feuil1").Range("I2:I65536").ClearContents
    Workbooks("thomas.xls").Sheets("Feuil1").Range("J2:J65536").ClearContents
    Workbooks("thomas.xls").Sheets("Feuil1").Range("G2:G65536").ClearContents
    Workbooks("thomas.xls").Sheets("Feuil1").Range("H2:H65536").ClearContents
     
     
     
    Chemin = "C:\Documents and Settings\S8746037\Bureau\Etude\Programme Excel Stephane\JB\Archivage\"
    fic = Dir(Chemin & "A180_PROD_1_LOT*.xls")
    Do Until fic = ""
         Set CL1 = Workbooks.Open(Chemin & fic)
         DoEvents
     
         Set fl = CL1.Worksheets("5")
         Set fl2 = Workbooks("thomas.xls").Sheets("Feuil1")
         fl2.Range("A" & fl2.Range("A65536").End(xlUp).Row + 1).Value = _
         fl.Range("B1").Value
         fl2.Range("B" & fl2.Range("B65536").End(xlUp).Row + 1).Value = _
         fl.Range("B3").Value
         fl2.Range("C" & fl2.Range("C65536").End(xlUp).Row + 1).Value = _
         fl.Range("B4").Value
         fl2.Range("D" & fl2.Range("D65536").End(xlUp).Row + 1).Value = _
         fl.Range("B5").Value
         fl2.Range("E" & fl2.Range("E65536").End(xlUp).Row + 1).Value = _
         fl.Range("F7").Value
         fl2.Range("F" & fl2.Range("F65536").End(xlUp).Row + 1).Value = _
         fl.Range("F8").Value
         fl2.Range("G" & fl2.Range("G65536").End(xlUp).Row + 1).Value = _
         fl.Range("F9").Value
         fl2.Range("H" & fl2.Range("H65536").End(xlUp).Row + 1).Value = _
         fl.Range("B15").Value
         fl2.Range("I" & fl2.Range("I65536").End(xlUp).Row + 1).Value = _
         fl.Range("E14").Value
          fl2.Range("J" & fl2.Range("J65536").End(xlUp).Row + 1).Value = _
         fl.Range("E19").Value
          fic = Dir
         CL1.Close True 'si tu enregistres le fichier ouvert -> Sinon c'est False
     
         DoEvents
    Loop
    Set CL1 = Nothing
    Set fl = Nothing
    Application.ScreenUpdating = True
     
    End Sub

  2. #2
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 344
    Par défaut
    Essaye ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     fl2.Range("A3:A" & fl2.Range("A65536").End(xlUp).Row + 1).Value = _
    fl.Range("B1").Value
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 208
    Par défaut
    non ca me convient pas du tout
    car ca me fout la paigaille dans mon programme dans le sens que maintenant le programme me recopie a chaque fois le meme truc sans pour autant commencer a la ligne 3

    merci tout de meme de ton aide

  4. #4
    Membre émérite
    Inscrit en
    Avril 2007
    Messages
    667
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Avril 2007
    Messages : 667
    Par défaut
    Bonjour Thomas,
    Depuis le temps je pense que tu es largement capable de resoudre ce genre de petits problemes...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim Lignecopie as long
    If fl2.Range("A65536").End(xlUp).Row > 2 then
    Lignecopie = fl2.Range("A65536").End(xlUp).Row +1
    else 
    Lignecopie = 3
    end if

  5. #5
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 208
    Par défaut
    non desoler tonton
    mais ca marche pas

    ca marque

    objet requis

  6. #6
    Membre émérite
    Inscrit en
    Avril 2007
    Messages
    667
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Avril 2007
    Messages : 667
    Par défaut
    Tu as mis ca apres avoir declare fl2 ?

Discussions similaires

  1. [VBA/Excel]lancer une macro d'un autre document
    Par daniel_gre dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 19/05/2008, 15h37
  2. [VBA Excel] Appliquer une macro sur une celulle contenant une valeur
    Par tchauviere dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 21/01/2008, 10h21
  3. {VBA Excel} Simplifier une macro avec une copie
    Par Thomas69 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 21/06/2007, 14h38
  4. [VBA-E] Récupérer une macro excel 97
    Par sammy39 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 15/05/2006, 11h04
  5. [VBA-E] [Excel] Lancer une macro à une heure donnée
    Par Lysis dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/10/2002, 12h15

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