Sélectionner valeur d'une colonne

Etienne Soler -  
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

________________________________
A voir également:

2 réponses

Paf
 
bonjour,

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+
0
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
Bonjour

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
0