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 / coller une cellule


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    593
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 593
    Points : 146
    Points
    146
    Par défaut Copier / coller une cellule
    Bonjour,

    J'ai un tableau dans la feuille "sheet2" avec ceci :

    Janvier
    Fevrier
    Mars
    ...
    ...
    ..
    TOTAL :
    Je voudrais récuper le mois de la dernière ligne avant TOTAL.
    Une fois récupérer je voudrais lui ajouter +1 donc,
    si je récupérer Avril, j'aurai Mai.

    Je voudrais copier Mai dans la feuille "sheet1" dans la cellule B8.


    Merci d'avance,

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Bonjour,

    Est-ce que tes mois sont des dates au format "mmmm" ou seulement du texte ?
    MPi²

  3. #3
    Membre expérimenté
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2013
    Messages
    885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 885
    Points : 1 499
    Points
    1 499
    Par défaut copier/coller une cellule
    Bonjour,

    Avec des mois au format personnalisé mmmm javais pensé à cela:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Sub essai()
    Dim cellule As Variant
    cellule = Feuil1.Range("a65536").End(xlUp).Offset(-1)
    cellule = cellule + 31
    Feuil1.Range(cellule).Copy Feuil2.Range("bb")
    End Sub
    Malheureusement VBA me renvoie l'erreur 1004 sur la dernière ligne et je ne sais pourquoi.
    Rajouter .value après les range ne change rien à l'erreur.

    Quelqu'un pourra peut-être expliquer cette erreur qui revient très souvent chez les débutants.

    Cordialement.

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Range("bb") devrait être Range("b8"), j'imagine...
    MPi²

  5. #5
    Membre expérimenté
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2013
    Messages
    885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 885
    Points : 1 499
    Points
    1 499
    Par défaut couper / coller une cellule
    Bonsoir parmi,

    Tu as raison. cela ne change de toute facon rien.
    Je crois de plus que mon code ne constitue pas une solution.
    en effet, l'écriture directe sur la feuille excel de 01/01/2013 donne bien "janvier".
    Les lignes en dessous avec la formule R[-1]C +31 donne bien les mois successifs mais le code lui cellule = 01/02/2013.

    Finalement plus j’apprends et essaie de comprendre VBA moins je le comprends.

    cordialement.

  6. #6
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Comme les mois n'ont pas tous 31 jours, au début ta date sera bonne, mais un jour ou l'autre tu sauteras un mois.

    1er février + 31 = 4 mars et on finit l'année au 8 décembre...

    Peut-être devrais-tu regarder du côté des mots-clés Annee, Mois et Jour en Excel (et en anglais sous VBA)

    Chez moi, les dates s'écrivent au format aaaa-mm-jj
    Ce qui donne ceci comme formule

    date de départ 2013-01-01 en A1
    Pour augmenter d'un "vrai" mois, ma formule est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =DATEVAL(ANNEE(A1) & "-" & MOIS(A1)+1 & "-" & JOUR(A1))
    La tienne devrait être
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =DATEVAL(JOUR(A1)) & "/" & MOIS(A1)+1 & "/" & ANNEE(A1)
    à tester en écrivant la 1ere date en A1

    Pour ce qui est de copier ta date en B8 sur Sheet1, tu peux simplement écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("Sheet1").Range("B8") = Sheets("Sheet2").Range("ta cellule")
    MPi²

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    593
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 593
    Points : 146
    Points
    146
    Par défaut
    Bonjour à tous,

    Malheureusement, je récupére ma Cellule qui n'est pas en format date...
    Y a t il une solutionà cela ?

  8. #8
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Si tu te retrouves avec un chiffre, du genre 41502, change le format à l'aide de la commande NumberFormat

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cells(x, y).NumberFormat = "dd/mm/yyyy"
    ou autre format comme tu le désires
    MPi²

  9. #9
    Membre expérimenté
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2013
    Messages
    885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 885
    Points : 1 499
    Points
    1 499
    Par défaut
    bonjour,

    je propose ce qui suit.

    attention deux possibilités sont incluses dans le code. il te faudra choisir.
    - soit cellule = "mois" dans le select case
    - soit feuil1.[b8] = "mois"
    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
    Sub copie()
    cellule = Feuil2.Range("a65536").End(xlUp).Offset(-1)
    Cells(1, 2) = cellule
    Select Case cellule
        Case "décembre"
            Feuil1.[b8] = "janvier"  'expression exige la suppression ligne de code Feuil1.[b8] = cellule
        Case "novembre"
            Feuil1.[b8] = "décembre"
        Case "octobre"
            Feuil1.[b8] = "novembre"
        Case "septembre"
            Feuil1.[b8] = "octobre"
        Case "aout"
            Feuil1.[b8] = "septembre"
        Case "juillet"
            cellule = "aout"        ' expression exige la ligne de code Feuil1.[b8] = cellule
        Case "juin"
            cellule = "juillet"
        Case "mai"
            cellule = "juin"
        Case "avril"
            cellule = "mai"
        Case "mars"
            cellule = "avril"
        Case "février"
            cellule = "mars"
        Case "janvier"
            cellule = "février" '
    End Select
     
    Feuil1.[b8] = cellule 'conserver si cellule = "mois" dans le select case et non Feuil1.[b8]
     
    End Sub
    re....,

    je n'avais pas vu la réponse de parmi avant mon précédent message.

    dans ma proposition:
    - la ligne 4 ne sert à rien. c’était juste une vérification lors de l'élaboration du code
    - les mois sont considérés au format texte comme j'ai cru le comprendre dans ta dernière intervention.

    cordialement.

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    593
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 593
    Points : 146
    Points
    146
    Par défaut
    Merci beaucoup pour la proposition de code.
    J'ai mon fichier en attachement.

    je pense que c'est beacoup plus simple avec le fichier.

    Donc je veux récupérer le dernier mois de ma fiche "open" (celui au dessus de total) ( attention la cellule va changer progressivement ) et le recopier dans la feuille "First page" dans la cellule G2 en faisant mois+1.

    merci d'avance,

  11. #11
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Points : 2 553
    Points
    2 553
    Par défaut
    Ton fichier n'est pas là... C'est simple à faire.

    Il suffit d'aller chercher l'adresse de ta case total et faire un offset(-1,0) pour récupérer le mois. Puis comme l'a mentionné nible, faire un select case.

  12. #12
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    593
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 593
    Points : 146
    Points
    146
    Par défaut
    Effectivement je pensais qu'il était passé mais les fichiers xlsm ne sont pas accepté...
    Fichiers attachés Fichiers attachés

  13. #13
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Points : 2 553
    Points
    2 553
    Par défaut
    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
    Sub MacroTest2()
    Dim ligne As Long
    Dim mois As String
     
        ligne = Sheets("Open").Range("B" & Rows.Count).End(xlUp).Row - 1
        mois = Sheets("Open").Range("B" & ligne)
     
    Select Case mois
        Case "December"
            Sheets("First page").Range("G2") = "January"
        Case "November"
            Sheets("First page").Range("G2") = "December"
        Case "October"
            Sheets("First page").Range("G2") = "November"
        Case "September"
            Sheets("First page").Range("G2") = "October"
        Case "August"
            Sheets("First page").Range("G2") = "September"
        Case "July"
            Sheets("First page").Range("G2") = "August"
        Case "June"
            Sheets("First page").Range("G2") = "July"
        Case "May"
            Sheets("First page").Range("G2") = "June"
        Case "April"
            Sheets("First page").Range("G2") = "May"
        Case "March"
            Sheets("First page").Range("G2") = "April"
        Case "February"
            Sheets("First page").Range("G2") = "March"
        Case "January"
            Sheets("First page").Range("G2") = "February"
    End Select
     
     
    End Sub

  14. #14
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Citation Envoyé par bullrot Voir le message
    ( attention la cellule va changer progressivement )
    Qu'est-ce que tu entends par changer progressivement ?
    Seulement les mois qui changent ou l'endroit va être différent ou des données vont être ajoutées à la feuille sous le tableau existant ?

    Je pose la question parce que le procédé à faire, en ce moment, est bien de chercher la dernière ligne - 1 pour trouver le dernier mois à modifier...
    MPi²

  15. #15
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Points : 2 553
    Points
    2 553
    Par défaut
    Je suppose qu'a chaque mois une ligne de plus sera insérée...

  16. #16
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    593
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 593
    Points : 146
    Points
    146
    Par défaut
    Oui c'est bien ca

  17. #17
    Membre expérimenté
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2013
    Messages
    885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 885
    Points : 1 499
    Points
    1 499
    Par défaut copier/coller une cellule
    re...,

    ci-joint ton fichier compressé sous le nom testforum3

    cordialement.
    Fichiers attachés Fichiers attachés

  18. #18
    Membre expérimenté
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2013
    Messages
    885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 885
    Points : 1 499
    Points
    1 499
    Par défaut copier/coller une cellule
    je n'avais pas vu le code de Engue Engue avant mon envoi

  19. #19
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Points : 2 553
    Points
    2 553
    Par défaut
    Mon code ? C'est le tien traduit en anglais

Discussions similaires

  1. [XL-2007] copier coller une cellule sur une ligne en fonction d'une valeur
    Par armina1978 dans le forum Excel
    Réponses: 3
    Dernier message: 17/11/2014, 09h43
  2. Copier coller une cellule dans la même cellule d'un autre classeur
    Par Tho69 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 14/08/2013, 10h59
  3. Réponses: 6
    Dernier message: 24/05/2012, 11h53
  4. Copier/Coller une cellule en y ajoutant un lien hypertexte
    Par Benjycool dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 14/01/2009, 15h01
  5. Copier/coller une plage de cellules pleine de trous
    Par ouskel'n'or dans le forum Contribuez
    Réponses: 0
    Dernier message: 21/05/2008, 18h57

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