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

danette26 -  
michel_m Messages postés 16602 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
A voir également:

5 réponses

ozone_ Messages postés 1518 Date d'inscription   Statut Membre Dernière intervention   478
 
Salut,
On pourrait avoir un exemple de fichier sur cjoint.com pour mieux visualiser la situation ?
1
ozone_ Messages postés 1518 Date d'inscription   Statut Membre Dernière intervention   478
 
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
danette26 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
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
ozone_ Messages postés 1518 Date d'inscription   Statut Membre Dernière intervention   478
 
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
danette26 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
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
danette26 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
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
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
Bonjour

Un autre petit exemple avec des explications
https://www.cjoint.com/?3ExqespzI6e

Cdlmnt
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
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