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 :

[VBA-E]transposer des données d'une feuille dans une autre


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de lio62
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 472
    Par défaut [VBA-E]transposer des données d'une feuille dans une autre
    bonsoir,

    j'ai un userform, appelé saisie, dedans j'ai dans la colonne B des dates et je voudrais extraire des dates à partir d'un critère >= et ensuite sélectionner la ligne de la colonne A a la colonne G et les recopier dans une autre feuille "controle1" en les transposant de la colonne(en partant de la 2ème ligne) B à H .

    j'ai un bout de code mais ca ne recopie rien ou tjrs la meme chose et je suis coincé pour la suite.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    noligne = Range("b1").End(xlDown).Row 
    dim ladate as date
    ladate = [am4]
    For Each cell In Range("b:b")
    If cell.Value >= ladate Then
     
      ActiveCell.EntireRow.Copy
       Sheets("feuil1").Select
       For z = 2 To 8
       Selection.PasteSpecial Paste:=xlPasteAll, _
      Transpose:=True
    merci a+

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 568
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 568
    Par défaut
    salut lionel
    c'est quoi ça, je connais pas

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 568
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 568
    Par défaut
    et plus serieusement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For Each cell In Range("b:b")
    If cell.Value >= ladate Then 
      ActiveCell.EntireRow.Copy
    quand tu utilise celldans les deux premieres lignes, tu fais une confusion. merci les exemples clairs de F1. en fait dans ce cas cell est une variable qui dans ce cas là represente une cellule.
    tu peux essayer
    for each pingouin in Range("b:b") ça marchera aussi
    et du coup dans la troisieme ligne quan tu utilise activecell, he ben c'est pas forcement la meme
    perso pour me rappeler que je parle de cellule j'utilise cel ou juste C
    for each cel ..
    et donc pour copier la ligne qui correspond a cel, et pas forcement a activecell, il vaut mieux utiliser queque chose du genre
    cel.row. ce qui donne dans ton cas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For Each c In Range("b:b")
    If c.Value >= ladate Then
     c.row.EntireRow.Copy
    idem si par exemple, tu voulais une cellule de cette ligne
    c.offset(0,2) ou cells(c.row,2)

  4. #4
    Membre éclairé Avatar de lio62
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 472
    Par défaut
    Bonsoir et merci pour tes explication alsimbad,
    ladate=[am4] me renvoie bien la valeur de la cellule am4

    je surnage tant bien que mal

    merci beaucoup a+

    au fait si tu connaissais un livre qui pourrait me faire progresser je suis preneur

    bien sur pas sur le forum ... aps de pub
    merci a+

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 568
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 568
    Par défaut
    les livres c'est bien, mais ce qui te fera progresser le plus, c'est exactement ce que tu es en train de faire. c'est a dire avoir un projet et chercher les infos un peu partout. c'est pas comme ça qu'on fais les plus jolis codes, mais c'est comme ça qu'on apprend quand on a pas de prof. moi perso, j'ai jamais lu un livre sur le sujet, je me trouve des projets, et je cherche comment y arriver. la plupart des solutions que je donne ici, je les calcule au fur et à mesure. un tiers de logique, un tiers de bon sens, un tiers de cogitation, un tiers d'esprit mathématique et beaucoup de " p***** de b***** de m****, pourquoi ça veut pas, m**** fais c**** !!!!!!
    a plus. bonne continuation

  6. #6
    Membre éclairé Avatar de lio62
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 472
    Par défaut
    bonsoir Alain

    tout ce qui est avec des astérisques j'ai compris

    c un bon début et j'ai les memes mots que toi

    non de d**** de b****l de m****

    mais c vraique c pas toujours évident et comme j'imprime tout ce que je trouve et qui pourrait m'être utile tu vois un peu !!!

    Tais toi CIBOOX je t"entends déjà rire !!!!!!!

  7. #7
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Hello lio, tu me fais de la peine
    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
    noligne = Range("b1").End(xlDown).Row 
    dim ladate as date
    ladate = [am4]
    '1 - Instancie la feuille dans laquelle tu copies et la plage
    Set LaPlage = Activesheet.Range("b:b")
    2- Place-toi dans la feuille où tu colles tes données
    sheets("feuil1").Select
    For Each cell In LaPlage
         If cell.Value >= ladate Then
             cell.EntireRow.Copy
             'Comme tu transposes tes données, je suppose que z est ton N° de colonne
             For z = 2 To 8
                  Cells(1,z).PasteSpecial Paste:=xlPasteAll, Transpose:=True
             Next
    Next
    Par contre, avec ce code, tu copies 8 fois la même ligne et autant de fois que tu as de colonnes
    Je verrai donc plutôt un truc comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    For Each cell In LaPlage
         If cell.Value >= ladate Then
             cell.EntireRow.Copy
             z = z + 1
             Cells(1,z).PasteSpecial Paste:=xlPasteAll, Transpose:=True
         endif
    Next

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

Discussions similaires

  1. [XL-2010] Importer des données de plusieurs fichiers dans une feuille excel en VBA
    Par Alibel dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 30/10/2013, 16h16
  2. [Toutes versions] coller les données d'une plage d'une cellule dans une cellule d'une autre feuille[VBA]
    Par arthson dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/01/2012, 18h37
  3. Réponses: 0
    Dernier message: 14/11/2011, 16h52
  4. [XL-2007] Afficher une checkbox dans une feuille si une checkbox d'une autre feuille est cochée
    Par JessieCoutas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/08/2009, 14h35
  5. [VBA-E] Copier des données d'un tableau a une feuille
    Par KKshi666 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 12/04/2007, 15h09

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