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 :

transfert lignes,colonnes sur deux feuille avec condition


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2010
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 25
    Points : 12
    Points
    12
    Par défaut transfert lignes,colonnes sur deux feuille avec condition
    bonjour à tous,

    j'ai un petit problème de débutant , même très débutant pour moi
    donc j'ai un classeur avec plusieurs feuilles
    dans feuille1, je voudrais avec une condition que si colonne D ="" a partir d'une certaine ligne alors il me transfert 4 colonne de la feuille1 a la feuille2 et qu'il me les tri en fonction de la colonneAG.

    Merçi de vos réponses

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    633
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 633
    Points : 877
    Points
    877
    Par défaut
    Bonsoir

    C'est pas très clair, le but du jeu est de confirmé la méthode suivante et de remplacer les ? par des valeurs concrètes.


    je parcours la colonne D de la 1er feuille

    a partir de la ligne ?? si la colonne D de la ligne est vide

    je copie les colonne ?, ?, ? et ? de cette ligne

    je les colles dans la deuxième feuille en colonne ?, ?, ? et ? à la ligne ?? (à la suite des autres?)

    dans la deuxième feuille, y a t-il une ligne de titre?
    Cordialement.

    N'oubliez pas de cliquer sur Résolu quand vous avez obtenu la réponse à votre question.
    Citation
    Il y a 10 sortes de gens au monde : ceux qui connaissent le binaire et les autres » - Anonyme
    Compter en octal, c’est comme compter en décimal, si on n’utilise pas ses pouces » - Tom Lehrer

  3. #3
    Membre à l'essai
    Inscrit en
    Juin 2010
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 25
    Points : 12
    Points
    12
    Par défaut
    j'ai fait un bon bout de 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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    Sub Test1()
    Dim StrNom As String                            'Declaration des variables'
    Dim IntA As Integer
    Dim StrIntitule As String
    Dim IntD As Double
    Dim i As Integer
    Dim j As Double
    j = 9
     
                For i = 1352 To 1736                    'boucle pour qui va tester toute les cellule de D si elles sont vides
                Sheets("Cdes Bât.").Select              ' positionnement sur la page bat
                If Range("D" & i) = "" Then             ' test si la cellule est vides
                StrNom = Range("F" & i)                 ' si elle est vide on recupere ce qu'il nous faut
                StrIntitule = Range("G" & i)
                IntA = Range("AG" & i)
                IntD = Range("A" & i)
                Sheets("Julien").Select                 ' positionnement sur la page julien
                Range("A" & j).Value = IntA             ' ajout des valeurs ds la pages julien
                Range("B" & j).Value = StrNom
                Range("C" & j).Value = StrIntitule
                Range("D" & j).Value = IntD
     
     
     
                End If
                j = j + 1
                Next
     
    End Sub
    2 problèmes:
    - il fait un copier coller et moi, je veux un couper coller
    - quand je lance le macro, il marche bien mais, il me met deux fois la liste.
    qui peut m'aider ???

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    633
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 633
    Points : 877
    Points
    877
    Par défaut
    Bonjour

    essaye comme ça

    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
     
    Sub Test1()
    Dim i As Integer
    Dim j As Double
    Dim wsh1 As Worksheet, wsh2 As Worksheet
    Set wsh1 = Sheets("Cdes Bât."): Set wsh2 = Sheets("Julien")
    j = 9
     
    For i = 1352 To 1736 'boucle pour qui va tester toute les cellule de D si elles sont vides
      If wsh1.Range("D" & i) = "" Then ' test si la cellule est vides
        wsh1.Range("F" & i).Cut wsh2.Range("B" & j) ' si elle est vide on recupere ce qu'il nous faut
        wsh1.Range("G" & i).Cut wsh2.Range("C" & j)
        wsh1.Range("AG" & i).Cut wsh2.Range("A" & j)
        wsh1.Range("A" & i).Cut wsh2.Range("D" & j)
      End If
      j = j + 1
    Next
    Set wsh1 = Nothing: Set wsh2 = Nothing
    End Sub
    Cordialement.

    N'oubliez pas de cliquer sur Résolu quand vous avez obtenu la réponse à votre question.
    Citation
    Il y a 10 sortes de gens au monde : ceux qui connaissent le binaire et les autres » - Anonyme
    Compter en octal, c’est comme compter en décimal, si on n’utilise pas ses pouces » - Tom Lehrer

  5. #5
    Membre à l'essai
    Inscrit en
    Juin 2010
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 25
    Points : 12
    Points
    12
    Par défaut
    ça marche mais encore deux choses:

    - dans la page julien , il commence a mettre la liste a partir de la ligne 270
    - il fait toujours un copier/coller et moi, je voudrais un couper/coller

  6. #6
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Bonjour
    Salut Zyhack, je me suis permis de déplacer j=j+1 dans ton 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
    18
    Sub Test1()
    Dim i As Integer
    Dim j As Double
    Dim wsh1 As Worksheet, wsh2 As Worksheet
    Set wsh1 = Sheets("Cdes Bât."): Set wsh2 = Sheets("Julien")
    j = 9
     
    For i = 1352 To 1736 'boucle pour qui va tester toute les cellule de D si elles sont vides
      If wsh1.Range("D" & i) = "" Then ' test si la cellule est vides
        wsh1.Range("F" & i).Cut wsh2.Range("B" & j) ' si elle est vide on recupere ce qu'il nous faut
        wsh1.Range("G" & i).Cut wsh2.Range("C" & j)
        wsh1.Range("AG" & i).Cut wsh2.Range("A" & j)
        wsh1.Range("A" & i).Cut wsh2.Range("D" & j)
    j = j + 1
      End If 
    Next
    Set wsh1 = Nothing: Set wsh2 = Nothing
    End Sub
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    633
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 633
    Points : 877
    Points
    877
    Par défaut
    Bonjour mercatog

    bien joué par contre je ne m'explique pas sa deuxième remarque.

    il fait toujours un copier/coller et moi, je voudrais un couper/coller
    j'ai fait l'essais en local et CUT fait bien un couper/coller, y aurait-il un parramètre que j'aurais oublié ?

    si tu avais une idée
    Cordialement.

    N'oubliez pas de cliquer sur Résolu quand vous avez obtenu la réponse à votre question.
    Citation
    Il y a 10 sortes de gens au monde : ceux qui connaissent le binaire et les autres » - Anonyme
    Compter en octal, c’est comme compter en décimal, si on n’utilise pas ses pouces » - Tom Lehrer

  8. #8
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Non non, c'est exactement comme ça qu'il fallait faire pour le Couper/ coller.
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  9. #9
    Membre à l'essai
    Inscrit en
    Juin 2010
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 25
    Points : 12
    Points
    12
    Par défaut
    enfaite , j'ai mal comprit ce que voulait mon patron, il faut faire un copier coller, car les 4 colonne transférés doivent restés dans les deux tableaux

  10. #10
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Dis à ton patron de remplacer les lignes comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wsh1.Range("F" & i).Cut wsh2.Range("B" & j)
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wsh1.Range("F" & i).Copy wsh2.Range("B" & j)
    Bon, voyons, un peu d'effort.
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  11. #11
    Membre à l'essai
    Inscrit en
    Juin 2010
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 25
    Points : 12
    Points
    12
    Par défaut
    Merçi a tous
    pour le dernier bout de code, je l'ai trouvé moi même, et la, je me suis dis, je suis trop bête, tu faut juste mettre copy.
    Je vous remerci tous de votre aide.

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

Discussions similaires

  1. Transfert de données entre deux tables avec conditions
    Par ric009 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 27/03/2014, 09h47
  2. [XL-2002] Recherche d'une valeur sur plusieurs feuilles avec conditions
    Par Rat-Thon dans le forum Excel
    Réponses: 4
    Dernier message: 06/12/2013, 12h26
  3. Copie de données entre deux feuilles avec condition "Année"
    Par ElPibeOro dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 01/07/2013, 15h58
  4. [XL-2007] Doublons sur deux feuilles avec 26 colonnes chacunes
    Par jimmycamelon dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 04/03/2011, 16h56
  5. [XL-2007] Copier coller une ligne excel sur autre feuille avec conditions
    Par amstelveen dans le forum Excel
    Réponses: 5
    Dernier message: 11/05/2009, 18h54

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