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 :

Inclure formules dans collage speciale


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Alternant
    Inscrit en
    Mai 2020
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Alternant

    Informations forums :
    Inscription : Mai 2020
    Messages : 27
    Par défaut Inclure formules dans collage speciale
    Bonjour à tous,

    Petite question,

    J'ai un code VBA qui m’insère une ligne à la ligne 14 , en recopiant la ligne 12.
    Cette ligne 12 contient dans une cellule , une formule .

    J'aimerais que quand ma macro copie ma ligne 12 pour l'inserer en ligne 14 , que les formules se recopie également .

    Vous avez une idée ?

    merci d'avance

    J'ai ce 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
    Sub NouveauContact()
     
    Dim i As Integer
    Dim DerLig As Integer
      Rows("12").Select
       Selection.Copy
       Rows(Range("A" & Rows.Count).End(xlUp).Row + 1).Select
       Selection.PasteSpecial
       Application.CutCopyMode = False
     DerLig = Range("A" & Rows.Count).End(xlUp).Row
    For i = 1 To 15
    Cells(DerLig, i).Value = ""
    Next i
     
    Cells(Range("A" & Rows.Count).End(xlUp).Row + 1, 1).Select

  2. #2
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 241
    Par défaut
    Bonjour,

    Pas clair votre code, ni vos explications. Vous voulez copier la ligne 12 en ligne 14 (ce sera toujours la 14?), donc on décale la ligne 14 existante vers le bas qui devient la ligne 15, puis après insertion, vous effacer la ligne 15. Autant copier directement la ligne 12 à la place de la 14, inutile de faire une insertion pour supprimer par la suite. Est-ce bien cela?

    Cdlt

  3. #3
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Ton code un peu débarbouillé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub NouveauContact()
       Rows(12).Copy Cells(Rows.Count, "A").End(xlUp).Offset(1, 0)
       Cells(Rows.Count, "A").End(xlUp).Resize(1, 15).ClearContents
    End Sub
    Citation Envoyé par MNAESSENS Voir le message
    Cette ligne 12 contient dans une cellule , une formule.
    Quelle cellule ?

    J'aimerais que quand ma macro copie ma ligne 12 pour l'inserer en ligne 14 , que les formules se recopie également .
    Les formules se copient mais ta boucle For To vide les cellules de leur contenu.
    Si tu veux conserver la formule, il suffit de ne pas effacer les contenus.

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 176
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Qu'est-ce que ce code est sensé faire ?

    Le collage spécial tel que tu l'as utilsé recopie les formules et du coup on peut se poser la question de la raison d'utiliser cette méthode alors que la méthode Copy avec son argument nommé Destination est bien plus simple à utiliser et évite notamment l'instruction Application.CutCopyMode = False.
    Ensuite, tu effaces ce que tu as copié. Cherchez l'erreur

    Les Select, Selection sont parfaitement inutiles et ralentissent l'exécution d'une procédure
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  5. #5
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par Philippe Tulliez Voir le message
    Ensuite, tu effaces ce que tu as copié. Cherchez l'erreur
    Sans certitude, je pense que la ligne 12 est le première ligne d'une liste et qu'elle sert de modèle pour créer les nouvelles lignes de saisie, d'où l'effacement des données pour laisser une ligne vierge.
    Mais l'une de ces cellules doit être un calcul des autres données (je parierais sur "Prix total = prix unitaire * quantité").

  6. #6
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 176
    Billets dans le blog
    53
    Par défaut
    Bonjour Menhir,
    Ah oui, c'est possible mais comme l'initiateur de cette discussion nous donne peu d'élément on ne peut que deviner mais suite à sa question
    J'aimerais que quand ma macro copie ma ligne 12 pour l'inserer en ligne 14 , que les formules se recopie également .
    Le collage spécial tel qu'il l'utilise recopie bien les formules mais bien entendu de la ligne 12. C'est plutôt un problème de conception.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  7. #7
    Membre averti
    Homme Profil pro
    Alternant
    Inscrit en
    Mai 2020
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Alternant

    Informations forums :
    Inscription : Mai 2020
    Messages : 27
    Par défaut
    Bonjour a tous , désolé j'ai été pris par le travail :p

    Merci à tous pour vos réponses je vais tenter de répondre à tout ça

    Alors ,

    En effet , la ligne 12 (deuxième ligne du tableau) sert de modèle pour l'insertion de la nouvelle ligne en ligne 13.
    Nom : Capture.PNG
Affichages : 97
Taille : 25,2 Ko

    cette action se fais lorsque j'appuie sur nouveau contact.

    Il y a dans la colonne "fournisseur" (colonne D ) une validation de données (dont liste se trouve en feuille 2 )

    Les colonnes E , F , G , H s'alimentent en fonction du fournisseur choisie en colonne D.
    Elles ont donc des formules (cellules E12 , F12 , G12 , H12 )

    Le but du coup est que lorsque j'appuie sur nouveau contact , que les formules dans ces cellules se copie également en E13 , F13 , G13 , H13 )

    La formules en ligne 12 est donc : =RECHERCHEV(D12;Feuil1!A2:AZ254;10;FAUX).
    La formule qui doit être recopiée en ligne 13 : =RECHERCHEV(D13;Feuil1!A2:AZ254;10;FAUX).
    formule pour ligne 14 : =RECHERCHEV(D14;Feuil1!A2:AZ254;10;FAUX).

    etc etc...

    Je sais pas si c'est assez clair ^^

    Désolé pour le code VBA un peu en bordel , j'ai récupéré des morceaux de code un peu partout donc voila voila hah ^^

    Merci a vous tous !

  8. #8
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub NouveauContact()
       Dim Dest As Range
       Set Dest = Cells(Rows.Count, "A").End(xlUp).Offset(1, 0)
       Rows(12).Copy Dest
       Dest.Resize(1, 4).ClearContents
       Dest.Offset(0, 8).Resize(1, 7).ClearContents
    End Sub

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 16/10/2017, 15h20
  2. [Débutant] Collage special dans word
    Par gregm954 dans le forum VB.NET
    Réponses: 1
    Dernier message: 20/09/2017, 09h42
  3. Inclure des formules dans le CSS ?
    Par Nikko42 dans le forum ASP.NET
    Réponses: 5
    Dernier message: 01/02/2012, 17h17
  4. [VB.NET] Inclure MSDE dans le package
    Par SergeF dans le forum EDI/Outils
    Réponses: 4
    Dernier message: 24/06/2004, 21h18
  5. [D7-EXCEL2000] Formule dans cellule Excel qui ne se calcule pas
    Par Albertolino dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 09/09/2003, 14h18

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