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 :

Mode de copier/coller sous conditions [XL-2016]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    ""
    Inscrit en
    Mai 2019
    Messages
    201
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : ""

    Informations forums :
    Inscription : Mai 2019
    Messages : 201
    Par défaut Mode de copier/coller sous conditions
    Bonjour à tous,

    J'en apprend tous les jours sur les macros mais mes compétences ne me permettent toujours pas de faire des choses simples par moi-même

    Je vous explique, j'ai trois petits besoins pour faire de la comparaison de projets :

    1 - Je renseigne les données d'un projet dans une colonne, en étude, une fois que j'ai terminé l'étude de ce projet, je souhaite pouvoir la déplacer dans une autre colonne avec les autres projets déjà étudiés (soit à la suite, soit on me demande à quelle position). Pour ce faire, je ne peux pas simplement copier coller toutes les cellules. Certaines ont besoin d'être copié en valeur, pour casser les formules; d'autres ont besoin de reprendre les formules. Pour cela je pensais dédier une colonne pour dire comment la cellule doit se copier 1 pour collage en valeur 0 pour du collage formule.

    2 - Ensuite j'aimerais pouvoir faire un RAZ de certaines cellules pour renseigner une nouveau projet. De la même façon je pourrais avoir une colonne (comme pour le point précédant) pour dire quelles cellules vont voir leur contenu effacer. 1 pour les cellule à supprimer, rien pour les garder tel quel.

    3 - Je souhaite pouvoir faire marche arrière et ramener les données d'un projet déjà étudié dans la colonne en cours d'étude (c'est l'inverse du besoin 1). Les cellules à ramener sont les mêmes que celles qui sont à RAZ donc on peut se servir de la même colonne comme indicateur. Pour ça je pensais soit avoir un bouton devant chaque projets étudiés que je copie/colle en modifiant la colonne à copier, soit après avoir cliquer sur un bouton, on me demande quel projet je souhaite ramener.

    Je précise que j'ai pour l'instant 180 lignes. Si vous avez d'autres idées de structure ou de façon de faire, je suis preneur

    Voilà

    Ca fait un peu de texte mais au moins ça devrait être clair !

  2. #2
    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 Anthony47 Voir le message
    je me permet un petit up
    Et moi je me permets de te rappeler les règles du forum.
    https://www.developpez.net/forums/d8...s-discussions/
    http://club.developpez.com/regles/#LIV-H

    Je me permettrais d'ajouter que ceux qui viennent ici pour qu'on fasse leur travail à leur place sont assez mal vus sur ce forum.

  3. #3
    Membre confirmé
    Homme Profil pro
    ""
    Inscrit en
    Mai 2019
    Messages
    201
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : ""

    Informations forums :
    Inscription : Mai 2019
    Messages : 201
    Par défaut
    Bonjour Menhir,

    Alors pour le fichier joint, je ne savais pas ! Je pensais tout l'inverse, que ça pouvait aider à comprendre

    Ensuite pour le up, je me suis dit que c'était une bonne solution parce que mon problème ne semble vraiment pas compliqué. Mais je vais l'enlever de ce pas !
    Et j'avais l'impression que mon explication était bonne, en tout cas, je ne saurai pas quoi modifier

    Puis pour votre dernière remarque, je suis pas certains d'avoir bien compris
    Qu'on soit d'accord, ma demande à une utilité à titre personnel, c'est pour l'achat d'un appart.

    Et si c'est pas de ça dont vous parlez, alors il y a quelque chose qui m'échappe.

    Pour l'instant avec ce que je trouve sur internet, j'arrive souvent à adapter des solutions et des petits bout de code VBA mais là j'avais un besoin qui me paraissait assez simple mais je n'ai rien trouvé sur le net.

    En tout cas, merci pour votre intervention, n'hésitez pas à me dire ce qui n'est pas claire dans mon besoin !

  4. #4
    Membre confirmé
    Homme Profil pro
    ""
    Inscrit en
    Mai 2019
    Messages
    201
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : ""

    Informations forums :
    Inscription : Mai 2019
    Messages : 201
    Par défaut
    Bon.. Sinon j'ai réussi à trouver un début de solution
    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
    37
    Sub Copie()
      Dim C As Range, Col As Integer
      'trouve la colonne à utiliser
      Col = Cells(3, Columns.Count).End(xlToLeft).Column + 1
      For Each C In Range("H3", Cells(Rows.Count, 8).End(xlUp)) 'Sélectionne la plage H3 à la dernière cellule remplie de la colonne H
        If C.Offset(, -4) = 0 Then
          Cells(C.Row, Col).Value = C.Value 'recopie valeurs
        ElseIf C.Offset(, -4) = 1 Then
          C.Copy Cells(C.Row, Col)  'collage standard
        End If
      Next C
    End Sub
    Sub RAZ()
      Dim C As Range
      For Each C In Range("H3", Cells(Rows.Count, 8).End(xlUp)) 'Sélectionne la plage H3 à la dernière cellule remplie de la colonne H
        If C.Offset(, -5) = 1 Then
          C.ClearContents 'efface la cellule
        End If
      Next C
    End Sub
     
    Sub MarcheArriere()
      Dim C As Range, Num As Variant, Col As Variant
      'Saisie du numéro de projet
      Num = InputBox("Entrez le numéro de projet")
      If Num = "" Then Exit Sub
      Col = Application.Match("Projet " & Num, [2:2], 0)
      If Not IsNumeric(Col) Then
        MsgBox "Projet " & Num & "  non trouvé"
        Exit Sub
      End If
      For Each C In Range("H3", Cells(Rows.Count, 8).End(xlUp)) 'Sélectionne la plage H3 à la dernière cellule remplie de la colonne H
        If C.Offset(, -5) = 1 Then
          C.Value = Cells(C.Row, Col).Value
        End If
      Next C
    End Sub
    Ça fonctionne très bien sur mon fichier test, mais je ne parviens pas à l'adapter sur mon fichier réel. Je ne sais pas comment modifier les colonne référence.

  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
    Dans la mesure où tu ne dis pas qu'elles sont les différences entre ton fichier test et ton fichier réel, je ne vois pas comment il serait possible de t'aider.

    As-tu essayer d'utiliser l'aide VBA en ligne pour comprendre les éléments de cette macro ?

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 19/06/2018, 10h43
  2. Création macro word pour copier-coller
    Par marmi dans le forum VBA Word
    Réponses: 2
    Dernier message: 18/04/2017, 09h26
  3. [LibreOffice][Tableur] Copier/Coller plage de cellules sans les formules en macro basic
    Par mike76 dans le forum OpenOffice & LibreOffice
    Réponses: 2
    Dernier message: 30/08/2016, 08h59
  4. Réponses: 5
    Dernier message: 21/10/2015, 16h06
  5. [VBA-E] copier /coller sur test cellule
    Par Portsall dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 23/05/2006, 22h19

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