Excel vba probleme avec offset

Fermé
marcoturbo Messages postés 26 Date d'inscription jeudi 4 septembre 2014 Statut Membre Dernière intervention 13 janvier 2016 - 1 juin 2015 à 16:55
marcoturbo Messages postés 26 Date d'inscription jeudi 4 septembre 2014 Statut Membre Dernière intervention 13 janvier 2016 - 2 juin 2015 à 14:41
Bonjour a tous,

J'ai un petit soucis avec la commande offset, j'ai un tableau de données sur 4 colonnes.
J'ai une boucle qui parcours la première colonne et qui me récupère les données comprises entre 1200 et 1250 et qui me copie la ligne entière sur une autre feuille.

Je voudrais qu'au lieu de me copier la ligne entière, ça me copie les 3 premières
colonnes.

Je pense que la réponse se situe du coté d'offset mais pas moyen de trouver la bonne syntaxe.

un fichier exemple joint si je n'ai pas été assez clair.

Merci d'avance.


https://www.cjoint.com/c/EFbqUxY72zR
A voir également:

3 réponses

eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 211
1 juin 2015 à 18:03
Bonjour,

Essaie avec :
cel.resize(,3).Copy 

eric
1
marcoturbo Messages postés 26 Date d'inscription jeudi 4 septembre 2014 Statut Membre Dernière intervention 13 janvier 2016
Modifié par marcoturbo le 1/06/2015 à 19:49
impeccable, rien d'autre a dire.

un grand merci.

tiens, par la même occasion, je fais une recherche avec un seul critère ( sur la colonne A ) , si je voudrais rajouter un autre critère ( sur la conne C ) comment faire ?

merci
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 211
1 juin 2015 à 23:00
Tu sais ce qu'elle te dit la conne C ? ;-)

Tu devrais aussi limiter la boucle au nombre de lignes nécessaires :
    Dim cel As Range, derlig As Long
    With Sheets("Feuil5")
        derlig = .Cells(Rows.Count, 1).End(xlUp).Row
        For Each cel In .[A1].Resize(derlig)
            If cel.Value > 1200 And cel.Value < 1250 Then
                If cel.Offset(, 2) = "Hall Sportif de 16H30 A 18H00" Then
                    cel.Resize(, 3).Copy Destination:=Sheets("Feuil3").Cells(Sheets("Feuil3").Range("A65536").End(xlUp).Row + 1, 1)
                End If
            End If
        Next cel
    End With

eric
0
marcoturbo Messages postés 26 Date d'inscription jeudi 4 septembre 2014 Statut Membre Dernière intervention 13 janvier 2016
2 juin 2015 à 12:11
c'est parce que elle m'embêtait la COLONNE C, je l'ai traité de conne..

Fin du hors sujet..


Merci eric, ca marche impec ;)
0
marcoturbo Messages postés 26 Date d'inscription jeudi 4 septembre 2014 Statut Membre Dernière intervention 13 janvier 2016
Modifié par marcoturbo le 2/06/2015 à 14:44
dernière question Eric, si tu passe par la,

cel.Resize(, 3).Copy Destination:=Sheets("Feuil3").Cells(Sheets("Feuil3").Range("A65536").End(xlUp).Row + 1, 1)


actuellement , ça me colle sur la feuille 3 en colonne A.

en mettant plusieurs If, j'aimerais mettre plusieurs résultats sur la même feuille.

              If cel.Value > 1000 And cel.Value < 1250 Then
If cel.Offset(, 2) = "Hall Sportif de 18H45 A 20H15" Then
cel.Resize(, 3).Copy Destination:=Sheets("Feuil3").Cells(Sheets("Feuil3").Range("A65536").End(xlUp).Row + 1, 1)
End If
End If

If cel.Value > 1000 And cel.Value < 1250 Then
If cel.Offset(, 2) = "Hall Sportif de 16H30 A 18H00" Then
cel.Resize(, 3).Copy Destination:=Sheets("Feuil3").Cells(Sheets("Feuil3").Range("A65536").End(xlUp).Row + 1, 1)
End If
End If


genre, le premier résultat en colonne A, le second en colonne F, ect..

merci d'avance.
0