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 :

macro marche sur 4 cellules mais comment faire pour des colonnes entières ?


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de melodyyy
    Inscrit en
    Octobre 2006
    Messages
    401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 401
    Par défaut macro marche sur 4 cellules mais comment faire pour des colonnes entières ?
    Voila en fait j'ai une macro qui est un peu galère a expliqué mais je vous explique...
    Dans la colonne A j'ai un commentaire ancien, dans la colonne B un commentaire nouveau, et dans la colonne C une concaténation du commentaire nouveau, de la date (mise dans une autre cellule pour mieux concaténer) et du commentaire ancien.
    Donc la j'ai réussi très bien pour 4 cellules...
    Seulement je voudrais que ça le fasse sur toute la colonne...
    Le but étant que dans la colonne B je rajoute un commentaire nouveau, que celui ci se concatène avec la date de modif et le commentaire ancien, et qu'ensuite s'efface la colonne A.

    Vu que ça marche sur 4 cellules je vous montre ce que j'ai fais..Je pense pas que ce soit dur de faire ça tout le long de la colonne, le truc c'est que je reprends le boulot today et je suis un peu lol

    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
     
    Range("D1").Select
    ActiveCell.FormulaR1C1 = "=RC[-2]&"" ""&TEXT(R[1]C[7],""jj/mm/AA"")&"" ""&RC[-3]"
    Range("D1").Select
    Selection.Copy
    Range("C1").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Range("D1").Select
        Application.CutCopyMode = False
        Selection.ClearContents
     
    End Sub

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    - tu recherche la dernière ligne de ta colonne où recopier,
    - tu mets ta formule dans D1 (ton code)
    puis
    - tu recopies la cellule D1 sur la plage comme indiqué
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Range("D1").AutoFill Destination:=Range("D2:D" & DernièreLigne), Type:=xlFillDefault
    A+

  3. #3
    Membre éclairé Avatar de melodyyy
    Inscrit en
    Octobre 2006
    Messages
    401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 401
    Par défaut
    pas bête ton histoire, j'y pensais presque :p sauf que il me met erreur de syntaxe et me fait quand même la macro mais il m'efface pas la colonne C (j'ai un peu modifié ta macro) mais je comprends pas pourquoi le message d'erreur...tu vois toi ? je te rappelle mon nouveau code

    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
     
    Sub formule()
     
    Dim DernièreLigne
    DernièreLigne = IF565
    Range("D1").Select
    ActiveCell.FormulaR1C1 = "=RC[-2]&"" ""&TEXT(R[1]C[7],""jj/mm/AA"")&"" ""&RC[-3]"
     
    Range("C1").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
    Range("D1").AutoFill Destination:=Range("D2:D565" & DernièreLigne), Type:=xlFillDefault
        Range("C1").Select
        Application.CutCopyMode = False
        Selection.ClearContents
     
    End Sub

  4. #4
    Expert confirmé
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Par défaut
    Rien ne te choque dans ce code ?

    Citation Envoyé par melodyyy
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ../..
    DernièreLigne = IF565
    ../..
    Range("D1").AutoFill Destination:=Range("D2:D565" & DernièreLigne), ../..

  5. #5
    Membre éclairé Avatar de melodyyy
    Inscrit en
    Octobre 2006
    Messages
    401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 401
    Par défaut
    je savais que je dormais aujourd'hui...je réssais et sur toute la ligne

  6. #6
    Membre éclairé Avatar de melodyyy
    Inscrit en
    Octobre 2006
    Messages
    401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 401
    Par défaut
    nan il me refait la même chose j'ai modifié un tout petit peu:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Range("C1").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
    Range("D1").AutoFill Destination:=Range("D1:DernièreLigne"), Type:=xlFillDefault

  7. #7
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Ben voui !
    Un coup tu lui mets que DernièreLigne = IF565 alors que je parle de D565, nécessairement, après...
    Ensuite tu mets DernièreLigne = IF565 alors que je parle d'un N° de ligne et non pas de l'adresse d'une cellule, donc, 565 tout court...
    Enfin tu mets Range("D2565" & DernièreLigne) alors que tu désignes déjà la dernière ligne dans D565
    M'étonne pas que ton pataquès génère une erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("D1").AutoFill Destination:=Range("D2:D" & DernièreLigne), Type:=xlFillDefault
    Y me semble pourtant que c'est bien ce que j'avais mis. Faut réfléchir avant de mettre des erreurs dans un code qu'en n'a pas

    Allez, raconte !

  8. #8
    Membre éclairé Avatar de melodyyy
    Inscrit en
    Octobre 2006
    Messages
    401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 401
    Par défaut
    ouai mais nan parce que moi je veux juste pouvoir concaténer mes comm jusqu'a la ligne 565, la je met ça ça me génère une erreur quand même:

    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
     
    Sub formule()
     
    Dim DernièreLigne
    DernièreLigne = 565
    Range("D1").Select
    ActiveCell.FormulaR1C1 = "=RC[-2]&"" ""&TEXT(R[1]C[7],""jj/mm/AA"")&"" ""&RC[-3]"
    Range("C1").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
    Range("D1").AutoFill Destination:=Range(("D2:D564" & DernièreLigne), Type:=xlFillDefault
        Range("C1").Select
        Application.CutCopyMode = False
        Selection.ClearContents
     
    End Sub
    Dit moi ce que toi tu mettrais, parce que la je vois pas du tout du tout

  9. #9
    Membre éclairé Avatar de melodyyy
    Inscrit en
    Octobre 2006
    Messages
    401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 401
    Par défaut
    euh sans la 2ème parenthèse pardon c'est moi

  10. #10
    Expert confirmé
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Par défaut
    Monsieur kafka, c'est l'argument Destination qui doit partir aussi de D1, je t'ai mis la ligne corrigée un peu plus haut et ouskel te l'a réécrite

Discussions similaires

  1. Réponses: 7
    Dernier message: 18/01/2010, 11h44
  2. Réponses: 3
    Dernier message: 25/09/2009, 11h48
  3. Réponses: 8
    Dernier message: 05/11/2008, 20h00
  4. Réponses: 1
    Dernier message: 25/01/2008, 14h44
  5. [HTML] Comment faire pour mettre de la musique sur un site
    Par Gray Man dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 11/12/2005, 18h13

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