Extraction de donnée boucle while wend

Résolu
Capitaine Trop top Messages postés 25 Statut Membre -  
 Ismailito -
Bonjour,

Je voudrais savoir comment faire pour utiliser la boucle while wend pour extraire des données d'une feuille à une autre de manière itérative ( que les résultats ne s'écrase pas sur les premiers )
Merci Cordialement

21 réponses

  • 1
  • 2
  1. ccm81 Messages postés 11033 Statut Membre 2 434
     
    Bonjour

    Si tu veux a tout prix une boucle while

    Option Explicit
    
    ' feuille source
    Const FS = "Feuil1"
    Const lidebFS = 1
    Const codebFS = "A"
    Const cofinFS = "B"
    ' feuille but
    Const FB = "Feuil2"
    Const lidebFB = 1
    Const codebFB = "A"
    
    Private Sub CommandButton1_Click()
    Dim lifinFS As Long, liFS As Long, plageFS As Range
    Dim lifinFB As Long, liFB As Long
    Application.ScreenUpdating = False
    lifinFS = Sheets(FS).Range(codebFS & Rows.Count).End(xlUp).Row
    liFS = lidebFS
    liFB = lidebFB
    While liFS < lifinFS
      Set plageFS = Sheets(FS).Range(codebFS & liFS & ":" & cofinFS & liFS)
      plageFS.Copy Sheets(FB).Range(codebFB & liFB)
      liFS = liFS + 1
      liFB = liFB + 1
    Wend
    Application.ScreenUpdating = True
    End Sub

    RQ. il y a plus efficace qu'une boucle while

    Bonne journée
    1
    1. Capitaine Trop top Messages postés 25 Statut Membre
       
      Bonjour Merci pour ce code qu'est ce que vous me proposer comme solution plus efficace qu'une boucle while
      0
  2. ccm81 Messages postés 11033 Statut Membre 2 434
     
    Une copie "en bloc " de la plage à copier

    Option Explicit
    
    ' feuille source
    Const FS = "Feuil1"
    Const lidebFS = 1
    Const codebFS = "A"
    Const cofinFS = "B"
    ' feuille but
    Const FB = "Feuil2"
    Const lidebFB = 1
    Const codebFB = "A"
    
    Private Sub CommandButton1_Click()
    Dim lifinFS As Long, plageFS As Range
    Dim lifinFB As Long
    lifinFS = Sheets(FS).Range(codebFS & Rows.Count).End(xlUp).Row
    Set plageFS = Sheets(FS).Range(codebFS & lidebFS & ":" & cofinFS & lifinFS)
    plageFS.Copy Sheets(FB).Range(codebFB & lidebFB)
    End Sub
    0
  3. Capitaine Trop top Messages postés 25 Statut Membre
     
    Pour être plus exact j'ai besoin d'extraire des données d'une feuille à une autre genre 5 données mais dès que je rentre le nom de la société dans la feuille but excel cherche toutes les opérations de cette société pour les importer de la feuille source
    0
  4. ccm81 Messages postés 11033 Statut Membre 2 434
     
    J'avoue ne pas comprendre ta demande.
    Peux tu mettre une partie significative de ton fichier au format exce2003l sur cjoint.com et joindre le lien obtenu à ton prochain message.
    N'oublies pas d'y expliquer ce que tu veux faire, à partir de quoi, et de donner une/des exemples
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Capitaine Trop top Messages postés 25 Statut Membre
     
    Je suis au bureau et le serveur proxy ne permet pas d'inclure des fichiers sur cjoint.com mais ce qu'il y a j'ai un fichier excel avec 2 feuille une feuille client et une feuillle pour calcul chaque client a des opérations en son nom avec des montant et tout je voudrais que sur la feuille calcul dès que j'écris le nom de la société dans la case société il aille me chercher ces données de la 2eme afin que j'effectue des calculs
    Merci ( envoie moi ton adresse mail par message privé comme je peux t'envoyer le fichier excel)
    0
  7. ccm81 Messages postés 11033 Statut Membre 2 434
     
    Désolé

    1. je ne tiens pas à mettre ici mon adresse mail
    2. sans une idée de la façon dont est organisé le fichier, je ne peux pas t'aider

    Bonne journée
    0
  8. Capitaine Trop top Messages postés 25 Statut Membre
     
    https://www.cjoint.com/?0BvlPbqnUve
    voilà le liens vers le fichier , je dois extraire les données en jaunes depuis la feuille terme 2013 vers la feuille change juste en rentrer le nom de l'entreprise en question de la cellule B2
    0
  9. ccm81 Messages postés 11033 Statut Membre 2 434
     
    Quelques questions

    Q1. Les "données en jaune" de la feuille Terme 2013 correspondent aux champs
    Trade Date
    Currency Pair Short Name
    Amount/Cur1
    CV MAD
    Maturity Date
    Ces champs ne figurent pas dans la feuille BMCE CHANGE
    Que doit on en faire? Où doit on les copier

    Q2. Quand on entre Toyota par exemple en B2, doit on envoyer dans la feuille TOUTES les lignes où Toyota figure dans la feuille BMCE CHANGE?

    Q3. Dans la feuille Terme 2013, colonne B, y aura t'il plusieurs "Société" ? avec pour chacune les données provenant de la feuille BMCE CHANGE

    Q4.Dans la feuille BMCE CHANGE? il y a des champs en "jaune" colonnes K, L, M. Sont ils concernés par ta demande, si oui comment?
    0
  10. Capitaine Trop top Messages postés 25 Statut Membre
     
    Q1 : Trade Date correspond à Deal Date
    Currency Pair shot name correspond à devise
    Amount/cur1 correspond à foreign
    CV MAD correspond à MAD
    Maturity Date correspond à échéance

    Q2 : oui toutes les lignes où toyota figure dans la feuille Terme 2013

    Q3 : oui il y a énormément de société j'ai juste mis l'exemple de 2 société

    Q4 : non les champs en jaune K L M ne sont pas concernés
    0
  11. ccm81 Messages postés 11033 Statut Membre 2 434
     
    Q5. Est ce que la feuille BMCE CHANGE est triée selon la colonne Société, en bref est ce que les toutes les "Toyota" par exemple sont regroupées en une seule plage comme sur ton exemple

    Q6. Est ce que veux faire le transfert pour TOUTES les sociétés de la feuille BMCE CHANGE en une seule commande ou bien tu veux faire ce transfert société par société via la colonne B

    Q7. Est ce qu'une fois le transfert effectué, le classeur peut subir des modifications?
    0
  12. Capitaine Trop top Messages postés 25 Statut Membre
     
    Q5 : non tu veux parler de la feuille Terme 2013 elle est pas trié c'est juste dans mon exemple il peut y avoir toyota à la ligne 1 puis une autre a la ligne 25 par exemple

    Q6 : un transfert société par société via la colone B ( genre en écrivant le nom de la société que tu veux lui il fait le transfert )

    Q7: oui il subit des modifications sauf pour la feuille terme 2013 elle reste intact
    0
  13. ccm81 Messages postés 11033 Statut Membre 2 434
     
    peux tu envoyer un exemplaire de ton fichier avec 4 ou 5 sociétés "mélangées" avec quelques lignes chacune
    0
  14. ccm81 Messages postés 11033 Statut Membre 2 434
     
    bon, ça ne sera pas pour tout de suite ......

    RQ. C'est une bonne idée de "normaliser" les noms des champs de la feuille BMCE CHANGE, mais tu aurais pu me le dire .....
    0
  15. Capitaine Trop top Messages postés 25 Statut Membre
     
    Merci en tout cas tu me sauve la vie Merci bcp
    0
  16. Capitaine Trop top Messages postés 25 Statut Membre
     
    Bonjour Merci bcp ça marche nickel est ce que c'est possible de rajouter une petite condition si le montant Amount/cur1 ( Colonne C feuille Terme 2013 ) il m'affiche dans la cellule Sens ( colonne F feuille Change ) Import sinon si c'est positif il m'affiche export
    Merci bcp Cordialement
    0
  17. ccm81 Messages postés 11033 Statut Membre 2 434
     
    Il faudrait faire un petit effort !!!

    1. ajouter à la liste des constantes
    Public Const coFB_Sens = "F"
    2. Ajouter à la suite des instructions de transert
        If Sheets(FS).Range(coFS_AC1 & liFS) < 0 Then 
          Sheets(FB).Range(coFB_Sens & liFB) = "Import" 
        Else 
          Sheets(FB).Range(coFB_Sens & liFB) = "Export" 
        End If

    bonne journée
    0
  18. Capitaine Trop top Messages postés 25 Statut Membre
     
    Merci bcp et pour ta patience et ton temps
    0
  19. ccm81 Messages postés 11033 Statut Membre 2 434
     
    De rien,

    peux tu mettre le problème à résolu (en haut de ton premier message)

    bonne fin de journée
    0
  • 1
  • 2