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 -
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 :
En vous remerciant par avance de votre aide.
A bientôt
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:
- VBA copier des infos d'un tableau à un autre avec condition
- Tableau word - Guide
- Trier un tableau excel - Guide
- Tableau ascii - Guide
- Imprimer un tableau excel - Guide
- Excel cellule couleur si condition texte - Guide
5 réponses
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 !
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 !
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
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.
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.
La condition c'est :
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 :
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
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 :
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour tout le monde,
encore une autre ;o)
la macro se déclenche sans bouton au changement dans D2
https://www.cjoint.com/?3EAi541SeA1
encore une autre ;o)
la macro se déclenche sans bouton au changement dans D2
https://www.cjoint.com/?3EAi541SeA1