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 :

Collage spécial d'une ligne de données dans une autre feuille


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2013
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Collage spécial d'une ligne de données dans une autre feuille
    bonjour, je souhaite déplacer une ligne de donnée d'une feuille A à une feuille B
    ce déplacement est soumis à condition.
    il doit etre placé dans la feuille B en fonction de la date des donées
    cette ligne est issue de formules, donc avec un collage normal, les valeurs renvoyées sont fausses.

    voici ma macro, issue d'anciennes discutions sur ce forum

    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
     If ThisWorkbook.Worksheets("D OMET2").Range("S8") = 3 Then
            Dim shS As Worksheet 'Source
            Dim shD As Worksheet 'destination
            Dim rCh As Range ' date a chercher
            Dim iDest As Integer 'Ligne de destination dans feuille
     
            Set shS = ThisWorkbook.Worksheets("D OMET2") ' Feuille source
            Set shD = ThisWorkbook.Worksheets("OMET 2") ' Feuille destination
            Set rCh = shS.Range("A8") ' Cellule contenant le nom à chercher
            On Error Resume Next 'Pour éviter les messages d'erreur sur recherche infructueuse
     
            iDest = Application.WorksheetFunction.Match(rCh, shD.Range("A:A"), 0)
            On Error GoTo 0
     
             shS.Range("A8:R8").Copy shD.Cells(iDest, "A")
     
     
            Worksheets("D OMET2").Range("B5:S5").ClearContents
            Worksheets("D OMET2").Range("B6:S6").ClearContents
            Worksheets("D OMET2").Range("B7:S7").ClearContents
    quelqu'un aurai t'il une idée de la façon de modifier la commande de collage
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    shS.Range("A8:R8").Copy shD.Cells(iDest, "A")
    de telle manière que seules les valeurs soient déplacées?

    j'ai déjà essayé un certain nombre de commandes type PasteSpecial mais rien ne semble fonctionner

    merci

  2. #2
    Membre habitué
    Femme Profil pro
    Inscrit en
    Février 2009
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2009
    Messages : 170
    Points : 191
    Points
    191
    Par défaut
    Bonjour

    Peut-être cela...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    MacelluleAtterrissage = MacelluleOrigine.value
     
    shD.Cells(iDest, "A") = shS.Range("A8:R8").value
    Bien à toi

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2013
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Merci pour l'idée mais ça ne fonctionne pas. Plus aucunes données ne sont déplacées.

  4. #4
    Membre habitué
    Femme Profil pro
    Inscrit en
    Février 2009
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2009
    Messages : 170
    Points : 191
    Points
    191
    Par défaut
    Essai cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    shD.Range("A" & iDest & ":R" & iDest) = shS.Range("A8:R8").value

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2013
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    ok merci j ai trouvé finalement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     Dim row As Integer
        For row = 1 To 17
        shD.Cells(miDest, row + 1).Value = shS.Cells(8, row + 1).Value
        Next

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

Discussions similaires

  1. [9.2] Insérer une ligne de données dans une table à partir de plpgsql
    Par ahermann2011 dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 25/02/2014, 13h52
  2. inserer les données d'une base de données dans une autres?
    Par enstein8 dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 14/10/2011, 13h33
  3. Réponses: 3
    Dernier message: 15/02/2011, 17h17
  4. Réponses: 1
    Dernier message: 26/12/2010, 21h20
  5. Réponses: 2
    Dernier message: 20/03/2009, 12h25

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