Macro pour copier des cellules dans un tableau suivant condition
Julien
-
Julien -
Julien -
Bonjour,
Je me permet de vous demander de l'aide pour la création d'une macro. J'ai essayé tant bien que mal, mais je bloque.
Mon souhait est de copier une ligne dans une feuille et excel et d'aller la copier dans un tableau excel seulement si "OK" est affiché. Le problème que j'ai est de lire une colonne ligne par ligne et que la macro s'arrête lorsque il voit le mot "OK" affiché et que la macro décale d'une cellule vers la droite pour pouvoir copier.
J'espère être suffisamment clair et que vous pourrez m'apporter votre aide.
Par avance merci?
Je me permet de vous demander de l'aide pour la création d'une macro. J'ai essayé tant bien que mal, mais je bloque.
Mon souhait est de copier une ligne dans une feuille et excel et d'aller la copier dans un tableau excel seulement si "OK" est affiché. Le problème que j'ai est de lire une colonne ligne par ligne et que la macro s'arrête lorsque il voit le mot "OK" affiché et que la macro décale d'une cellule vers la droite pour pouvoir copier.
J'espère être suffisamment clair et que vous pourrez m'apporter votre aide.
Par avance merci?
A voir également:
- Macro pour copier des cellules dans un tableau suivant condition
- Tableau word - Guide
- Excel cellule couleur si condition texte - Guide
- Suivi des modifications word - Guide
- Trier un tableau excel - Guide
- Tableau ascii - Guide
5 réponses
Voila ce que j'ai écrit même si je sais qu'une grande partie est mauvaise, je vous remercie par avance de votre aide.
Sub Historique()
'
' Historique Macro
'
'
Sheets("BDD").Select 'sélection de la feuille ou doit être la macro
Range("E3:BY3").Select 'sélection de la ligne à copier
Selection.Copy
Dim FL1 As Worksheet, NoCol As Integer 'lecture de la colonne D ligne par ligne,
Dim NoLig As Long, Var As Variant 'macro prise sur un site mais je ne comprends pas tout,
Set FL1 = Worksheets("BDD") 'de plus je n'arrive pas a arreter la lecture lorsque
NoCol = 4 'le programme lit le mot "OK",
For NoLig = 1 To Split(FL1.UsedRange.Address, "$")(4) 'le décalage doit se faire sur la colonne de gauche grace à un offset?
Var = FL1.Cells(NoLig, NoCol)
Next
Set FL1 = Nothing
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False 'copie de la ligne précédemment copiée
Sheets("Suivi").Select 'retour sur la feuille principale
End Sub
Sub Historique()
'
' Historique Macro
'
'
Sheets("BDD").Select 'sélection de la feuille ou doit être la macro
Range("E3:BY3").Select 'sélection de la ligne à copier
Selection.Copy
Dim FL1 As Worksheet, NoCol As Integer 'lecture de la colonne D ligne par ligne,
Dim NoLig As Long, Var As Variant 'macro prise sur un site mais je ne comprends pas tout,
Set FL1 = Worksheets("BDD") 'de plus je n'arrive pas a arreter la lecture lorsque
NoCol = 4 'le programme lit le mot "OK",
For NoLig = 1 To Split(FL1.UsedRange.Address, "$")(4) 'le décalage doit se faire sur la colonne de gauche grace à un offset?
Var = FL1.Cells(NoLig, NoCol)
Next
Set FL1 = Nothing
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False 'copie de la ligne précédemment copiée
Sheets("Suivi").Select 'retour sur la feuille principale
End Sub
Bon, alors je toruve que c'est un brun compliqué comme code ... avec un bon mélange de copy/paste que je trouve pas très optimisé.
Sur quel Feuille faut il cherche la ligne à copier ? (appelée feuille source)
Quelles est la colonne qu'il faut tester pour savoir s'il y a le OK ? (colonne 4 soit la colonne D )
Combien y a t il de ligne en tout dans la feuille source ?
Combien y a t il de colonne dans la feuille source ? (d'après ce que je comprend de E à BY )
Comment est construit la feuille de destination ? (un simple tableau )
Quelles sont les colonnes à reporter dans la feuille de destination ?
Comment sont copiées les lignes dans la feuille de destination, les unes a la suite des autres ou il y a un classement fait a l'insertion ?
Faut il supprimer les ligne copier de la feuille source ?
On va refaire proprement cette macro qui me semble non approprié pour l'utilité que vous en avez.
Sur quel Feuille faut il cherche la ligne à copier ? (appelée feuille source)
Quelles est la colonne qu'il faut tester pour savoir s'il y a le OK ? (colonne 4 soit la colonne D )
Combien y a t il de ligne en tout dans la feuille source ?
Combien y a t il de colonne dans la feuille source ? (d'après ce que je comprend de E à BY )
Comment est construit la feuille de destination ? (un simple tableau )
Quelles sont les colonnes à reporter dans la feuille de destination ?
Comment sont copiées les lignes dans la feuille de destination, les unes a la suite des autres ou il y a un classement fait a l'insertion ?
Faut il supprimer les ligne copier de la feuille source ?
On va refaire proprement cette macro qui me semble non approprié pour l'utilité que vous en avez.
Sur quel Feuille faut il cherche la ligne à copier ? Il faut chercher sur la feuille nommée BDD
Quelles est la colonne qu'il faut tester pour savoir s'il y a le OK ? Il faut en effet tester la colonne D
Combien y a t il de ligne en tout dans la feuille source ? Il faut lire de la ligne 8 à la ligne 373
Combien y a t il de colonne dans la feuille source ? Oui de E à BY(d'après ce que je comprend de E à BY )
Il faut copier les lignes E3 à BY3 dans la feuille BDD
Il faut lire la colonne D à partir de la ligne 8 jusqu'à la ligne 373 sur la feuille BDD
Il faut coller la ligne copier dans la ligne ou est le OK et le tableau va de E8 à BY373 (un décalage offset ne serait pas possible lorsque le programme voit le mot OK dans la colonne D?)
Par avance merci pour votre patience et votre aide précieuse.
Quelles est la colonne qu'il faut tester pour savoir s'il y a le OK ? Il faut en effet tester la colonne D
Combien y a t il de ligne en tout dans la feuille source ? Il faut lire de la ligne 8 à la ligne 373
Combien y a t il de colonne dans la feuille source ? Oui de E à BY(d'après ce que je comprend de E à BY )
Il faut copier les lignes E3 à BY3 dans la feuille BDD
Il faut lire la colonne D à partir de la ligne 8 jusqu'à la ligne 373 sur la feuille BDD
Il faut coller la ligne copier dans la ligne ou est le OK et le tableau va de E8 à BY373 (un décalage offset ne serait pas possible lorsque le programme voit le mot OK dans la colonne D?)
Par avance merci pour votre patience et votre aide précieuse.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question