VBA copier des infos d'un tableau à un autre avec condition

danette26 -  
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour tout le monde,

Je suis débutant sur VBA et ai quelques problème pour mettre en place ma macro.

Mon objectif : J'ai un premier onglet avec plein de données (Inventaire), et un second (Information) où j'aimerais reporter des lignes de l'inventaire suivant une conditions.

Mon avancé : proche du néant :)
Non j'ai commencé un petit à écrire la Macro. J'ai défini la variable (celle qui fixe ma condition) et commencé à faire la boucle avec do loop (pour que, tant que ma condition soit vrai les itérations continuent).

Mon problème ou plutôt mes problèmes : Je ne sais pas comment écrire les instructions dans la boucle do loop (ce qui finalement est le plus important).
En gros j'aimerais écrire :
"Dés que la condition est vrai dans la colonne A de la feuille inventaire alors recopié l'information de la colonne C (colonne qui se trouve toujours dans l'onglet inventaire) dans la colonne B de la feuille Information".

Voici la macro que j'ai commencé à écrire :
Sub Reporting_inventaire()

Sheets("Informations").Select
Dim entrepot As Integer
entrepot = Cells(3, 4)


Sheets("Inventaire").Select
Do While i = entrepot

i = Columns("A:A")

Loop


End Sub


En vous remerciant par avance de votre aide.

A bientôt

5 réponses

  1. ozone_ Messages postés 1823 Statut Membre 511
     
    Salut,
    On pourrait avoir un exemple de fichier sur cjoint.com pour mieux visualiser la situation ?
    1
  2. ozone_ Messages postés 1823 Statut Membre 511
     
    Voilà une solution :
    https://www.cjoint.com/c/EExp74BhZwW

    Y'avais surement possibilité de le faire sans macro mais c'est pas trop dans mes cordes.

    1f u c4n r34d th1s u r34lly n33d t0 g37 l41d !
    1
    1. danette26 Messages postés 3 Statut Membre
       
      Merci Ozone, j'ai réussi À l'adapter dans mon cas.
      Par contre j'ai un autre problème que je pensais résoudre beucoup plus facilement.
      Lorsque je sors l'inventaire en cliquant sur le bouton j'aimerais que les francais et islandais n'apparaissent pas quelle que soit la ville choisie:

      Je pensais juste mettre quelque chose du genre
      ...
      If worksheets("Inventaire").cells(i,5) <> "islandais".value And worksheets("Inventaire").cells(i,5)<> "francais".value then
      ...
      end if
      ...


      pour les valeurs islqndqis et francais j' fait faire une référence à des cellules fixes au lieu d'écrire les noms en toutes lettres.
      Mais je me rends compte que quelque chose ne plqit pas à VBA.

      Aurais-tu une solution pour ce problème ?

      Merci par avance pour ton dévouement.
      0
    2. ozone_ Messages postés 1823 Statut Membre 511
       
      La condition c'est :
      If Cells(2, 4) = Worksheets("Inventaire").Cells(i, 1) And _
              Worksheets("Inventaire").Cells(i, 4) <> "Islandais" And _
              Worksheets("Inventaire").Cells(i, 4) <> "Francais" Then


      C'est bien sur Cells(i,4) et non (i,5) car c'est la 4e colonne, y'a pas de colonne 5.
      De plus le travail sur un texte comme "islandais" exclu le besoin d'avoir .value à la suite.

      Soit le tout :
      Sub trier()
          Dim i, y As Integer
          y = 5
          Range("B5:D100").ClearContents
          
          For i = 2 To 100
              If Cells(2, 4) = Worksheets("Inventaire").Cells(i, 1) And _
              Worksheets("Inventaire").Cells(i, 4) <> "Islandais" And _
              Worksheets("Inventaire").Cells(i, 4) <> "Francais" Then
                  Cells(y, 2) = Worksheets("Inventaire").Cells(i, 2)
                  Cells(y, 3) = Worksheets("Inventaire").Cells(i, 3)
                  Cells(y, 4) = Worksheets("Inventaire").Cells(i, 4)
                  y = y + 1
              End If
          Next
      
      End Sub
      
      0
    3. danette26 Messages postés 3 Statut Membre
       
      Parfait je te remercie.
      En fait je me suis rendu compte que c'est ce que j'avais fait, mais lorsque je faisais appel à une feuille j'oubliais une lettre dans le nom de la feuille. Il faut rester rigoureux !!!

      Merci d'avoir pris de ton temps pour m'aider.

      A la prochaine certainement. ;)
      0
  3. danette26 Messages postés 3 Statut Membre
     
    Voilà j'ai créé un nouveau fichier beaucoup plus simple et qui me permettra de comprendre vos conseils.

    https://www.cjoint.com/c/EExpzWq9EOQ

    Dans ce cas je veux en fonction de la ville sélélectionné que les personnes se mette dans le tableau de la feuille "Information" (pas sûr d'avoir était bien clair).

    SI je reprends ma première Macro que j'adapte à ce nouveau fichier ca donnerait :

    Sub Reporting_inventaire()
    
    Sheets("Informations").Select
    Dim ville As Integer
    ville = Cells(3, 4)
    
    
    Sheets("Inventaire").Select
    Do While i = ville
    
    i = Columns("A:A")
    
    Loop
    
    
    End Sub
    0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour tout le monde,
    encore une autre ;o)
    la macro se déclenche sans bouton au changement dans D2
    https://www.cjoint.com/?3EAi541SeA1

    0