Sélectionner valeur d'une colonne
Etienne Soler
-
michel_m Messages postés 18903 Date d'inscription Statut Contributeur Dernière intervention -
michel_m Messages postés 18903 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je suis en train de réalisé une macro et je vues tester ttes les valeurs de ma colonnes E pour les traitées ensuites :
j'ai essayer ceci mais cela ne fonctionne que ds certain cas , est ce juste ? y'a t'il une autre solution ?
___________________
Dim DerLig As Integer
Dim ligne As Integer
Sheets("TOTAL ORDER MORPHING WOMEN").Select
ligne = 1
Do Until ligne > DerLig
If Range(Cells(ligne, "E"), Cells(ligne, "E")).Value = "AS" Then
Range(Cells(ligne, "A"), Cells(ligne, "D")).Select
Selection.Copy
Sheets("Sheet33").Select
Range(Cells(ligne, "A"), Cells(ligne, "A")).Select
ActiveSheet.Paste
Sheets(Sheets.Count - 5).Select
ligne = ligne + 1
Else
ligne = ligne + 1
End If
________________________________
Je suis en train de réalisé une macro et je vues tester ttes les valeurs de ma colonnes E pour les traitées ensuites :
j'ai essayer ceci mais cela ne fonctionne que ds certain cas , est ce juste ? y'a t'il une autre solution ?
___________________
Dim DerLig As Integer
Dim ligne As Integer
Sheets("TOTAL ORDER MORPHING WOMEN").Select
ligne = 1
Do Until ligne > DerLig
If Range(Cells(ligne, "E"), Cells(ligne, "E")).Value = "AS" Then
Range(Cells(ligne, "A"), Cells(ligne, "D")).Select
Selection.Copy
Sheets("Sheet33").Select
Range(Cells(ligne, "A"), Cells(ligne, "A")).Select
ActiveSheet.Paste
Sheets(Sheets.Count - 5).Select
ligne = ligne + 1
Else
ligne = ligne + 1
End If
________________________________
A voir également:
- Sélectionner valeur d'une colonne
- Déplacer une colonne excel - Guide
- Trier une colonne excel - Guide
- Colonne word - Guide
- Excel additionner une colonne - Guide
- Figer une colonne excel - Guide
2 réponses
bonjour,
En supposant la variable Derlig est initialisée quelque part (ce qui n'est pas le cas dans le code proposé):
je n'ai pas testé le code, il se peut qu'il y ait un problème de feuille active (c'est pour ça que j'ai déplacé Sheets(Sheets.Count - 5).Select après la boucle for).
A+
En supposant la variable Derlig est initialisée quelque part (ce qui n'est pas le cas dans le code proposé):
For i = 1 To Derlig
If Range("A" & i) = "AS" Then
Range(Cells(i, "A"), Cells(i, "D")).Copy
Sheets("Sheet33").Range(Cells(i, "E"), Cells(i, "K")).Select
ActiveSheet.Paste
End If
Next
Sheets(Sheets.Count - 5).Select
je n'ai pas testé le code, il se peut qu'il y ait un problème de feuille active (c'est pour ça que j'ai déplacé Sheets(Sheets.Count - 5).Select après la boucle for).
A+
Bonjour
en VBA évite au maximum les select sélection et les copy paste
si tu reportes uniquement des valeurs avec beaucoup de "AS"
comme notre ami Paf, que je salue, le Sheets(Sheets.Count - 5).Select m'a paru bizarre et je ne l'ai pas traité
si tu veux t'y rendre à la fin
en VBA évite au maximum les select sélection et les copy paste
si tu reportes uniquement des valeurs avec beaucoup de "AS"
Sub xxx()
Dim Derlig As Integer, Nbre As Integer, Cptr As Integer
Dim Tablo(), Ligne As Integer
Application.ScreenUpdating = False
With Sheets("TOTAL ORDER MORPHING WOMEN")
Derlig = .Columns("E").Find("*", , , , , xlPrevious).Row
Nbre = Application.CountIf(.Range("E1:E" & Derlig), "AS")
If Nbre = 0 Then GoTo erreur
lig = 1 'ligne restiturtion
Ligne = 1
For Cptr = 1 To Nbre
Ligne = .Columns("E").Find("AS", .Cells(Ligne, "E"), xlValues, xlWhole).Row
Tablo = .Range(.Cells(Ligne, "A"), .Cells(Ligne, "D")).Value
Sheets("Sheet33").Cells(lig, "A").Resize(1, 4) = Tablo
lig = lig + 1
Next
End With
Exit Sub
erreur:
MsgBox """AS"" inconnu", vbCritical
End Sub
comme notre ami Paf, que je salue, le Sheets(Sheets.Count - 5).Select m'a paru bizarre et je ne l'ai pas traité
si tu veux t'y rendre à la fin
Sheets(Sheets.Count - 5).Activate