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 cellule en fonction d'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
    Inscrit en
    Mars 2011
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 13
    Par défaut Copier cellule en fonction d'une variable
    Bonjour,

    Ma situation:
    J'ai un tableau de données ou chaque colonne correspond a une semaine.
    Par une combobox, l'utilisateur choisit quelle semaine il veut. (la variable associée a cette action est maVariable)

    Ce que je souhaite c'est tranformer mon code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        Sheets("Sheet1").Select 
        Range("A2").Select 
        Selection.Copy 
        Sheets("Sheet3").Select 
        Range("E4").Select 
        ActiveSheet.Paste
    Modifier le Range("A2").Select par qqchose du genre Range(colonne ou il y a maVariable + ligne n2)

    Ideas?

    merci d'avance

  2. #2
    Membre Expert Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Par défaut
    bonjour,
    essaye en remplaçant "range("A2")" par "Cells(lignen2, mavariable)".
    regarde dans l'aide vba (F1) avec le mot cells.

    Mais si tu pouvais développer un peu plus ce que tu souhaites faire et ou se trouve ta combo (sur un userform ou sur ta feuille) se serait cool.

  3. #3
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonsoir,

    Si j'ai bien compris, l'utilisateur sélectionne la semaine voulue représenté par un numéro dans le ComboBox et tu veux récupérer la valeur correspondante de la ligne 2 ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Sub Selectionner()
     
        Dim MaVariable As Integer
     
        MaVariable = ComboBox1.Text
     
        Sheets("Sheet1").Cells(2, MaVariable).Copy Sheets("Sheet3").Range("E4")
     
    End Sub
    Hervé.

  4. #4
    Membre averti
    Inscrit en
    Mars 2011
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 13
    Par défaut
    Sheet 1 j'ai cela:

    W05 W06 W07 W08
    0.40 1.15 2.30 0.70
    6.05 7.20 9.50 10.20
    1.40 1.50 0.40 2.95
    9.75 11.25 11.65 14.60
    j'ai une combobox sheet 2 qui me permet de choisir la semaine selectionnée.

    apres avoir selectionner la semaine voulue ex: W07
    W07 est mis dans maVariable

    En cliquant sur un un bouton Execute,
    je veux deplacer les données correspondantes a la semaine 7 vers une sheet 3.

    2.30 vers B6 de la sheet 3
    9.5 vers C2 de la sheet 3
    etc


    Une fois remplie, je copie ces données dans un autre fichier etc etc (ca c'est ok)



    J'espere avoir été plus clair

  5. #5
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Re,

    Pour récupérer le numéro de la semaine :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MaVariable = CInt(Format(Right(ComboBox1.Text, 2), "#0"))
    Pour le reste, je te laisse chercher un peu ;0)

    Hervé.

  6. #6
    Membre averti
    Inscrit en
    Mars 2011
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 13
    Par défaut
    Citation Envoyé par Theze Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Sub Selectionner()
     
        Dim MaVariable As Integer
     
        MaVariable = ComboBox1.Text
     
        Sheets("Sheet1").Cells(2, MaVariable).Copy Sheets("Sheet3").Range("E4")
     
    End Sub
    Cela ne marche pas.

    Je pense qu'il faut qu'il cherche dans la sheet 1 dans quelle colonne se trouve la valeur stockée dans maVariable sur toute la ligne 2 du tableau. (ligne ou il y a toutes les semaines).


    Je ne comprends pas trop ta deuxieme reponse.
    La valeur maVariable je l'ai déja, et la tu la modifie... ?

    voila ce que j'ai essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sheets("Sheet1").Select
    Cells(2, MaVariable).Select
    Selection.Copy
    Sheets("Sheet3").Select
    Range("E4").Select
    Selection.Paste
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sheets("Sheet1").Cells(2, MaVariable).Select
    Sheets("Sheet1").Cells(2, MaVariable).Copy
    Sheets("Sheet3").Cells("E4").Select
    Sheets("Sheet3").Range("E4").Paste
    error 1004
    Application-defined or object-defined error

  7. #7
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Sous quelle forme est la valeur de "MaVariable" ? Du genre 1, 2, 3, etc... ou autre ?
    Ton bloc d'instructions peut être rammené à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Sheets("Sheet1").Cells(2, MaVariable).Copy Sheets("Sheet3").Range("E4")
    Hervé.

  8. #8
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Re,

    Désolé pour ma réponse précédente, les valeurs du ComboBox étant sous la forme W01, W02, W03, etc... il te faut récupérer que la partie nombre, c'est pour ça qu'une erreur est générée. Teste ce qui suit, ça marche. Par contre, j'ai vus un post(avec Mercatog) où tu rempli ton Combo en fonction des valeurs de ta ligne ? Là, il va y avoir des résultats inattendus car tu aura des décalage de colonnes à cause de la présence des colonnes contenant le nom des mois :

    JAN -W01 - W02 -W03 - W04 - W05 - FEV - W06 -W07 ..

    Code sans tenir compte de ces décalages :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Private Sub ComboBox1_Click()
     
        Dim MaVariable As Integer
     
        MaVariable = CInt(Format(Right(ComboBox1.Text, 2), "#0"))
     
        Sheets("Sheet1").Cells(2, MaVariable).Copy Sheets("Sheet3").Range("E4")
     
    End Sub
    Hervé

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

Discussions similaires

  1. Réponses: 16
    Dernier message: 24/02/2015, 09h54
  2. Réponses: 2
    Dernier message: 20/11/2014, 15h24
  3. [XL-2013] Copier des cellules en fonction d'une plage de cellules
    Par Flows dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 24/02/2014, 18h38
  4. [XL-2003] Déplacer contenu cellule en fonction d'une variable
    Par a-tire-daile dans le forum Excel
    Réponses: 0
    Dernier message: 01/02/2011, 14h49
  5. Nom d'une cellule en fonction d'une variable
    Par Kibald dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 04/12/2008, 21h47

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