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 :

Aide d'une recopie d'un texte


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2015
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Architecte de base de données

    Informations forums :
    Inscription : Mars 2015
    Messages : 123
    Par défaut Aide d'une recopie d'un texte
    Bonjour à tous,

    Je vous explique la situation. Dans mon code vba ci-dessous, je note un texte sur la cellule AS2 et je lui demande de recopier le texte jusqu'à la dernière ligne.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        ActiveCell.Offset(1, 0).Select
        ActiveCell.FormulaR1C1 = "31/12/2015"
        Dim DernLigne As Long
        DernLigne = Range("C" & Rows.Count).End(xlUp).Row
        Range("AS2").AutoFill Destination:=Range("AS2:AS" & DernLigne)
    MAIS, dans cet extrait, je voudrais que la recopie soit la même valeur. Lorsque je lance la macro, j'obtiens un résultat par exemple en AS3 => 31/12/2016....

  2. #2
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    l'autofill va incrémenter une date, ou une valeur, c'est normal

    essaye comme ça (je ne m'attarde pas sur l'utilité de l'activecell)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim DernLigne As Long
     
    DernLigne = Range("C" & Rows.Count).End(xlUp).Row
    ActiveCell = "31/12/2015"
    Range("AS2:A" & DernLigne).Value = ActiveCell.Value

  3. #3
    Membre confirmé
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2015
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Architecte de base de données

    Informations forums :
    Inscription : Mars 2015
    Messages : 123
    Par défaut
    Merci à vous

    autres questions...

    Dans le code ci-dessous, la formule ne fonctionne pas quand je lance la macro alors que si je saisie la formule manuellement,elle fonctionne.
    Pour information, c'est une formule qui dit que si la date dans AL est supérieur à celle dans AS alors faire la différence entre AK et AS sinon rien faire (=SI(AL2>AS2;DATEDIF(AK2;AR2;"d");""))

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        Range("AR2").Select
        ActiveCell.FormulaR1C1 = "=IF(RC[-6]>RC[1],DATEDIF(RC[-7],RC[1],""d""),"""")"
        DernLigne = Range("C" & Rows.Count).End(xlUp).Row
        Range("AR2").AutoFill Destination:=Range("AR2:AR" & DernLigne
    Petite précision, quand la macro est terminée, je dois double cliquer sur la cellule et faire "entrée" pour que la formule fonctionne...

  4. #4
    Membre Expert
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Par défaut
    Citation Envoyé par chito79000 Voir le message
    Petite précision, quand la macro est terminée, je dois double cliquer sur la cellule et faire "entrée" pour que la formule fonctionne...
    Et si tu fais suivre par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("AR2:AR" & DernLigne).Calculate
    ca change quelque chose ?

  5. #5
    Membre éclairé
    Avatar de tamtam64
    Homme Profil pro
    stagiaire developpement vba
    Inscrit en
    Mai 2012
    Messages
    456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : stagiaire developpement vba
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2012
    Messages : 456
    Billets dans le blog
    17
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    application.calculation = xlcalculationautomatic
    ou un truc comme ca car aparement tu es en manuel

  6. #6
    Membre confirmé
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2015
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Architecte de base de données

    Informations forums :
    Inscription : Mars 2015
    Messages : 123
    Par défaut
    Bonjour à tous,

    Cela ne fonctionne toujours pas ....

    En effet, je dois toujours double cliquer sur la date pour que la formule fonctionne....

  7. #7
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    voici une autre méthode pour remplir une plage avec une formule
    le résultat est immédiat, pas besoin de valider les cellules

    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
     Sub iiiii()
     Dim Plage As Range
     
    ' la plage qui doit contenir la formule
    ' PENSE A INDIQUER LE NOM DE LA FEUILLE
    ' (sinon c'est la feuille active qui est prise en compte)
    Set Plage = Range("AR2:AR" & Range("C" & Rows.Count).End(xlUp).Row)
     
    ' la formule appliquée sur toute la plage
    Plage.FormulaR1C1 = "=IF(RC[-6]>RC[1],DATEDIF(RC[-7],RC[1],""d""),"""")"
     
    ' transformation de la formule en sa valeur calculée
    'Plage.Value = Plage.Value
     
    End Sub
    si tu ne veux pas conserver les formules, et uniquement garder les résultats, retire l'apostrophe sur la ligne "'.Value = .Value" pour qu'elle soit activée dans la procédure

  8. #8
    Membre confirmé
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2015
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Architecte de base de données

    Informations forums :
    Inscription : Mars 2015
    Messages : 123
    Par défaut
    VOICI UNE PARTIE DE MON CODE VBA :

    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
        nom = ActiveCell.Value
        Workbooks.Open Filename:="FICHIER EXCEL"
        Range("AR1").Select
        ActiveCell.FormulaR1C1 = "CALCUL"
        Range("AS1").Select
        ActiveCell.FormulaR1C1 = "DATE TEST"
        ActiveCell.Offset(1, 0).Select
        ActiveCell.FormulaR1C1 = "31/12/2015"
        Dim DernLigne As Long
        DernLigne = Range("C" & Rows.Count).End(xlUp).Row
        ActiveCell = "31/12/2015"
        Range("AS2:AS" & DernLigne).Value = ActiveCell.Value
        Range("AT1").Select
        ActiveCell.FormulaR1C1 = "1ERE ANNEE"
        Range("AU1").Select
        ActiveCell.FormulaR1C1 = "2EME ANNEE"
        Range("AR2").Select
        ActiveCell.FormulaR1C1 = "=IF(RC[-6]>RC[1],DATEDIF(RC[-7],RC[1],""d""),"""")"
        DernLigne = Range("C" & Rows.Count).End(xlUp).Row
        Range("AR2").AutoFill Destination:=Range("AR2:AR" & DernLigne)
        Range("AR2:AR" & DernLigne).Calculate
        ActiveCell.Offset(0, 2).Select
    Et le souci c'est que je dois aller sur une des cellules de la colonne AS double cliquer pour et la formule fonctionne. En soit, la formule fonctionne très bien mais cest la colonne AS qui pose problème

  9. #9
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    tu n'as pas des macros évènementielles dans le module de la feuille, qui désactiveraient le recalcul ou le rafraichissement ?

    tu as testé ma proposition afin de savoir si le problème persiste ?

  10. #10
    Membre confirmé
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2015
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Architecte de base de données

    Informations forums :
    Inscription : Mars 2015
    Messages : 123
    Par défaut
    Excusez moi c'est quoi exactement une macro événementielle ? et comment je peux le voir ?
    Oui j'ai testé votre proposition et cela ne fonctionne toujours pas

  11. #11
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Pour éviter de long et fastidieux échanges de messages ....

    peux-tu montrer une copie de ton fichier (avec retrait d'éventuelles données confidentielles) ?

  12. #12
    Membre confirmé
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2015
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Architecte de base de données

    Informations forums :
    Inscription : Mars 2015
    Messages : 123
    Par défaut
    VOICI LE BON FICHIER
    Fichiers attachés Fichiers attachés

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

Discussions similaires

  1. aide sur la conversion d'une page html en texte brut !
    Par inffoadel dans le forum Développement Web en Java
    Réponses: 4
    Dernier message: 02/02/2010, 20h16
  2. Réponses: 4
    Dernier message: 18/08/2009, 18h35
  3. Réponses: 5
    Dernier message: 27/05/2008, 15h29
  4. [HTML] Générer un fichier texte à l'aide d'une interface graphique en HTML
    Par gogeta68 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 01/04/2008, 23h27
  5. [Formulaire] Rechercher des données à l'aide d'une zone de texte
    Par rantanplan81 dans le forum VBA Access
    Réponses: 4
    Dernier message: 14/06/2007, 14h25

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