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 :

copier la valeur d'une variable dans une cellule d'un autre classeur classeur.


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 51
    Points : 34
    Points
    34
    Par défaut copier la valeur d'une variable dans une cellule d'un autre classeur classeur.
    Bonjour

    je cherche à savoir la syntaxe pour copier la valeur d'une variable dans une cellule d'un autre classeur classeur .. merci d'avance

  2. #2
    Membre confirmé Avatar de Runsh63
    Homme Profil pro
    Contrôleur de gestion
    Inscrit en
    Mars 2011
    Messages
    476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Contrôleur de gestion
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2011
    Messages : 476
    Points : 478
    Points
    478
    Par défaut
    Bonjour Iichham,

    Pourrais-tu développer un peu STP car là c'est un plutôt vague. Où se trouve ta variable en entrée ? Est-ce le contenu d'une cellule entière ou une partie de celle-ci, veux-tu passer par une macro, etc... ?
    Runsh

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 51
    Points : 34
    Points
    34
    Par défaut
    désolé de ma maladresse de manipulation du au fait que je suis nouveau dans le forum. je suis aussi débutant en VBA (chose qui explique un peu mon code)
    en fait j'ai deux classeurs... dans le premier j'ai fais une boucle qui cherche une valeur(15/90) dans la colonne A une fois trouver, j ai mis une deuxième conditions pour si dans la deuxième cellule à droite j'ai la valeur Contrat_Z9 si oui la variable Var prend la valeur de la cellule(0,10)
    je veux par la suite copier la valeur renseignée dans Var dans la cellule I:1 de la feuille 1 d'un autre classeur

    petit aperçu de 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
    Sub Copier()
    Dim Plage as Range, Cellule As Range, Var As Range
     
    Set Plage = Range("A1:A100")
     
    For Eche Cellule In Plage
            Select Case Cellule.Value
               case "15/90"
                     If (Cellule.Offset(0,2)="Contrat_Z9") then 
                       set Var = Cellule.Offset(0,10)
                            ' la je veux copier la valeur que prend la variable Var         dans un autre classeur ("Rapport.xlsx") dans la feuille("Feuil1") et dans la cellule ("I:1")
     
    End Sub

  4. #4
    Membre confirmé Avatar de Runsh63
    Homme Profil pro
    Contrôleur de gestion
    Inscrit en
    Mars 2011
    Messages
    476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Contrôleur de gestion
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2011
    Messages : 476
    Points : 478
    Points
    478
    Par défaut
    Du code vite fait (non testé) pour copier des cellules d'un classeur à un autre :

    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
    Sub TestCopy()
     
    Dim C1 As Workbook, C2 As Workbook
    Dim i As Integer
     
    Set C1 = Workbooks("Classeur1")
    Set C2 = Workbooks("Classeur2")
     
    With C1
        With Sheets("Feuil1")
     
            For i = 1 To 100
            Cells(i, 1).Copy C2.Sheets("Feuil1").Cells(i, 1)
            Next i
        End With
    End With
     
    Set C1 = Nothing
    Set C2 = Nothing
     
     
    End Sub
    Runsh

  5. #5
    Membre confirmé Avatar de Runsh63
    Homme Profil pro
    Contrôleur de gestion
    Inscrit en
    Mars 2011
    Messages
    476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Contrôleur de gestion
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2011
    Messages : 476
    Points : 478
    Points
    478
    Par défaut
    De ce que j'ai compris de ton dernier post (je n'avais pas vu que tu avais modifié entre temps...), tu testes sur une plage allant de A1 à Axxx les valeurs. Si tu trouves 15/90, alors tu vas tester en C de la même ligne la valeur. Si "Contrat_Z9", alors tu copies la valeur de la cellule J de la même ligne pour aller la copier dans le classeur "Rapport" en cellule I1. Si oui, alors, voilà le code que j'ai bidouillé (à adapter).

    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
    Sub TestCopy()
     
    Dim C1 As Workbook, C2 As Workbook
    Dim i As Integer
     
    Set C1 = Workbooks("Classeur1")
    Set C2 = Workbooks("Rapport")
    With C1
        With Sheets("Feuil1")
     
            For i = 1 To 100
                If Cells(i, 1).Value = "15/90" Then
                    If Cells(i, 3).Value = "Contrat_Z9" Then
                        Cells(i, 10).Copy C2.Sheets("Feuil1").Cells(1, 9)
                    End If
                End If
            Next i
        End With
    End With
     
    Set C1 = Nothing
    Set C2 = Nothing
     
    End Sub
    L'embêtant c'est que si tu as plusieurs fois les bonnes conditions réunis, tu auras en I1 de la feuille "Rapport" uniquement la dernière valeur trouvée...
    Runsh

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 51
    Points : 34
    Points
    34
    Par défaut
    merci ça marche nickel j'ai pu adapter ton code au mien... cependant y a il moyen à se que je passe les valeurs du premier classeur sans pour autant ouvrir le classeur Rapport ?

  7. #7
    Membre confirmé Avatar de Runsh63
    Homme Profil pro
    Contrôleur de gestion
    Inscrit en
    Mars 2011
    Messages
    476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Contrôleur de gestion
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2011
    Messages : 476
    Points : 478
    Points
    478
    Par défaut
    Salut Iichham,

    Peut-être qu'il y a moyen mais ça dépasse largement mes compétences. Attends donc qu'un mercatog, pgz ou autre brute de la programmation passe par là
    Runsh

Discussions similaires

  1. Mettre la valeur d'un champ d'une table dans une variable
    Par marcelstan dans le forum Access
    Réponses: 1
    Dernier message: 18/03/2015, 20h58
  2. portée d'une variable dans une fonction dans une méthode
    Par laurentg2003 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/06/2009, 19h05
  3. Réponses: 0
    Dernier message: 21/01/2009, 13h52
  4. Réponses: 3
    Dernier message: 13/01/2009, 16h55
  5. Réponses: 1
    Dernier message: 15/02/2007, 00h24

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