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 :

ranger une plage d'une feuille à une autre


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    158
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2011
    Messages : 158
    Par défaut ranger une plage d'une feuille à une autre
    bonjour.
    Je veux copier ranger des valeurs d'une feuilles à une autre.
    J'ai essayé ceci et ca marche bien.mais je n'arrive pas à ranger une somme ou une plage.

    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
    Private Sub Test_Click()
    Set oAppExcel = CreateObject("Excel.Application")
         Set Lien = CurrentDb.OpenRecordset("Lien")
        Lien.MoveFirst
        While Not Lien.EOF
        With Lien
        lienExcell = .Fields("LienExcell")
        End With
        Lien.MoveNext
        Wend
        'Application.EnableEvents = False
    
     With oAppExcel
            .DisplayAlerts = False
            Set oXLWB = .Workbooks.Open(lienExcell)
            With oXLWB
        .Sheets("calcul").Range("C20") = .Sheets("G15&FRANCE").Range("R6")
        .Sheets("calcul").Range("C19") = .Sheets("G15&FRANCE").Range("G6")
        .Sheets("calcul").Range("C21") = .Sheets("Feuille1").Range("K7")
        .Sheets("calcul").Range("C22") = .Sheets("Feuille2").Range("X7")
        .Sheets("calcul").Range("C23") = .Sheets("Feuille3").Range("BA6")
        .Sheets("calcul").Range("BA81") = .Sheets("Feuille5").Range("I6")
        .Sheets("calcul").Range("BA80") = .Sheets("Feuille5").Range("K7")
        ' .Sheets("Données-calcul").Range("A18") = .Sheets("calcul").Range("=Sum(BA80:BA81")    Celle la ne marche pas
        .Sheets("calcul").Range("L5") = .Sheets("calcul").Range("C19")
        .Sheets("calcul").Range("L6") = .Sheets("calcul").Range("C20")
        .Sheets("calcul").Range("L7") = .Sheets("calcul").Range("C21")
        .Sheets("calcul").Range("L8") = .Sheets("calcul").Range("C22")
        .Sheets("calcul").Range("L9") = .Sheets("calcul").Range("C23")
        .Sheets("calcul").Range("L10") = .Sheets("calcul").Range("BA82")
    Ici sera mieux si je peux ranger toute une plage à la place de copier case par case.    
        
        
         .Sheets("calcul").Range("C23").Delete
         .Sheets("calcul").Range("C22").Delete
         .Sheets("calcul").Range("C21").Delete
         .Sheets("calcul").Range("C20").Delete
         .Sheets("calcul").Range("C19").Delete
    Ici je veux supprimer les cases apres les avoir copier.
    Est ce qu'il y a une methode de faire couper dés le debut aulieu de les copier?      
             oXLWB.SaveAs lienExcell
             .Close
             End With
         Set oXLRng = Nothing
        Set oXLSht = Nothing
        Set oAppExcel = Nothing
         Set oXLWB = Nothing
        End With
        MsgBox "Test terminé"
    End Sub
    Enfin moi ce que je veux exactement,et si j'arrive à le faire sera mieux de faire des copiers et supprimer inutile.
    Dans ma feuille calcul,chaque moi je range les valeurs calculés dans une colonne.
    Par exemple ce mois ci,je range dans la colonne aout les valeurs obtenu dans les autres feuille.Le mois aout correspond à la colonne I. Est ce qu'il y a une methode de dire à mon programme,verifie la date systeme,si je suis en mois aout 2011,je stock les valeurs dans la plage I5:I10, si je suis en septembre 2012,je stock mes valeurs dans la plage j5:j10

    Merci en avance pour votre aide

  2. #2
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Bonjour

    pour la ligne en rouge Essaie cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     .Sheets("Données-calcul").Range("A18").Value = application.WorksheetFunction.Sum(.Sheets("calcul").Range("BA80:BA81"))
    Est ce qu'il y a une methode de dire à mon programme,verifie la date systeme,si je suis en mois aout 2011,je stock les valeurs dans la plage I5:I10, si je suis en septembre 2012,je stock mes valeurs dans la plage j5:j10
    La destination sera (Aout en colonne I soit l'index de colonne 9)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cells(ligne, month(date)+1).value=

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    158
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2011
    Messages : 158
    Par défaut
    Merci pour ta réponse.
    j'ai essayé la 1ere propostition que tu m'as donnée,mais je reçoi cette erreur:membre de méthode ou de donnée introuvable.
    je reçoi l'erreur ici:

  4. #4
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    quelle est la ligne complete qui plante

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    158
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2011
    Messages : 158
    Par défaut
    c'est ici !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      .Sheets("Données-calcul").Range("A18").Value = Application.WorksheetFunction.Sum(.Sheets("calcul").Range("BA80:BA81"))

  6. #6
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Essais en remplacant Application par oAppExcel

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 23/06/2015, 14h42
  2. [XL-2002] Copie d'une plage de colonne vers une plage d'une autre colonne
    Par Canidé dans le forum Excel
    Réponses: 1
    Dernier message: 16/01/2014, 05h48
  3. [XL-2010] Somme d'une plage de cellules d'une feuille X suite à un clic dans une autre feuille
    Par yasse87 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 31/07/2012, 12h25
  4. Trouver une plage de cellule dans une autre plage
    Par ouskel'n'or dans le forum Contribuez
    Réponses: 0
    Dernier message: 16/04/2008, 14h27

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