Excel VBA selection lignes avec condition

Résolu/Fermé
linette44 Messages postés 23 Date d'inscription dimanche 1 avril 2007 Statut Membre Dernière intervention 20 mai 2008 - 1 avril 2007 à 22:15
 urban - 23 mai 2008 à 00:04
Bonjour,
Après un 1er message parti trop vite (voir linette 44, 21.45), voici mon problème.
Je désire sélectionner les lignes répondant à la valeur "contrat" dans la colonne A et différent de "816 et 819" dans la colonne C.
Les lignes sélectionnées devront être coupées et coller sur une nouvelle feuille.

J'ai également un deuxième problème sur un autre classeur :
Faire la somme des valeurs de chaque colonne(4 colonnes) sur la 1ère ligne vierge au bas du tableau.
Merci de votre aide

44 réponses

:( Finalement je pensais que c'était bon, mais à l'ouverture de mon fichier Ecell, j'active la macro et il m'affiche :
Tableau croisé dynamique impossible à modifier dans une feuille protégée.

Je suppose que j'ai mal mis les "Sheet..." la où il faut les mettre...

Merci encore pour ton aide.

Swindler
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 211
22 oct. 2007 à 17:28
Bonjour,

J'avais du faire une compli de 2 post lorsque je t'ai répondu car il n'y a aucune necessité de déproteger et reproteger ta feuille (sauf si c'est ton souhait bien sûr).
Si le .unprotect est mis juste après le sub et le .protect juste avaznt end sub ça doit marcher...
Mais pour ton cas oublie ces 2 trucs là et enleve ces 2 lignes

eric
0
Bonjour,

Ca marche vraiment bien là.

Merci encore eric.

A bientôt
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 211
23 oct. 2007 à 18:26
De rien Swindler
Pense à mettre résolu si tout te parait ok
Merci
eric
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Je recherche une macro qui puisse faire ceci :
j'ai un tableau excels avec des pays et des rubriques matière, va, transport.
Je souhaite une macro qui copie ces lignes en fonction de la variable pays et rubrique, et la colle sur un autre fichier excels, tableau ayant un onglet par pays, et sur chaque feuille pays une partie des lignes pour la matière, une autre pour la va et une autre pour le transport.
Exemple, si la ligne = 206IRAN et matière, copier cette ligne sur la feuille 206 IRAN partie matière de mon autre fichier
si la ligne=405IRAN et transport, copier cette ligne sur la feuille 405 Iran partie transport de mon autre fichier, et si la ligne n'est pas libre, passer à la ligne juste en dessous.

Merci pour votre aide.
0
Voila je me suis inspirer de la première macro de solcosmico. Le but de ma macro est que des données financieres d'une première feuille soit copier sur une seconde feuille par rapport au numéro de la semaine saisie, ainsi qu'au numéro du bureau concerné.

Voici le code :

Sub macroEdition()

msg1 = "Erreur dans le numéro de la semaine"
numSemaine = InputBox( _
Title:="AFFICHAGE D'UNE SEMAINE", _
Prompt:="Entrez le numéro de la semaine :", _
Default:="")

msg2 = "Erreur dans le numéro du DCS"
numDCS = InputBox( _
Title:="AFFICHAGE D'UN DCS", _
Prompt:="Entrez le numéro du DCS :", _
Default:="")


Dim Rw As Range


'Sélectionne l'ensemble des données
Sheets("recap").Select
ActiveCell.SpecialCells(xlLastCell).Select
Range(Selection, Cells(1)).Select

'Test Boucle
For Each Rw In Selection.Rows


If Rw.Cells(1, 4).Value = numSemaine Then
If Rw.Cells(1, 5).Value = numDCS Then
Rw.Copy Destination:=Worksheets("resultat").Cells(Ligne, 1).EntireRow
Rows("553:553").Select
Selection.RowHeight = 25
End If
End If

Next Rw

End Sub
0
Lorsque je l'éxécute, seul la selection des données a lieu et il n'y a pas de copie. Si quelqun à une solution je suis preneur...
0
Oups, petite erreur déjà corriger : Rw.Copy Destination:=Worksheets("resultat").Cells(Ligne, 1).EntireRow il faut remplacer le ligne par Rw.Rows mais toujours aucuns résultats.
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
22 janv. 2008 à 15:42
bonjour

 Rw.Copy Destination:=Worksheets("resultat").Cells(Ligne, 1).EntireRow 

Faudrait gérer l'adresse de "Ligne" pour que tu puisses copier toutes tes lignes :
au début : ligne = 1
puis : ligne = ligne + 1 à chaque copie par exemple.
0
Oui au début j'ai utilisé la variable ligne, a chaque tour de la bouche for each ligne était égal a : Ligne = Rw.Rows
J'avais le droit a une erreur d'incompatibilité entre Ligne qui était du type double et Rw.Rows
0
Personne n'a une petite idée? :(
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
22 janv. 2008 à 17:18
bonjour

et comme ceci :
Option Explicit

Sub macroEdition()

Dim Rw As Range
Dim ligne As Long
Dim numSemaine As Variant
Dim numDCS As Variant
'msg1 = "Erreur dans le numéro de la semaine"
numSemaine = InputBox(Title:="AFFICHAGE D'UNE SEMAINE", Prompt:="Entrez le numéro de la semaine :", Default:="")

'msg2 = "Erreur dans le numéro du DCS"
numDCS = InputBox(Title:="AFFICHAGE D'UN DCS", Prompt:="Entrez le numéro du DCS :", Default:="")

Sheets("recap").Select 'Sélectionne l'ensemble des données
ActiveCell.SpecialCells(xlLastCell).Select
Range(Selection, Cells(1)).Select

ligne = 1
For Each Rw In Selection.Rows ' Boucle Test
    If Rw.Cells(1, 4).Value = Val(numSemaine) Then
        If Rw.Cells(1, 5).Value = numDCS Then
            Rw.EntireRow.Copy Destination:=Worksheets("resultat").Cells(ligne, 1)
            ligne = ligne + 1
            
            Rows("553:553").Select
            Selection.RowHeight = 25
        End If
    End If
Next Rw
End Sub


Par contre je ne vois pas pourquoi tu as ceci
Rows("553:553").Select
Selection.RowHeight = 25
après la copie de chaque ligne ?
--



toujours zen
0
Hélàs toujours le même résultat : ma page recap est bien sélectionner mais aucunes copies ne s'effectuent...

Rows("553:553").Select
Selection.RowHeight = 25

C'est pour que toutes les lignes soit de taille 25.
0
Le problème c'est que lorsque la macro s'éxécute, elle n'arrive pas a aller dans la bouche For Each.
0
ALELUYA ! Tu avais raison aucunes valeurs n'etaient selectionnées. Je te remercie beaucoup. Tu m'as été d'une grande aide.
Bonne fin de journée à toi.
A+
0
Bonjour à tous!

Je suis stagiaire et on me demande de créer une macro. J'ai un peu vu le principe des macros en cours mais je ne sais pas du tout programmer.

Ma question, si vous acceptez de m'aider, est la suivante:

Dans mon entreprise, à chaque fois qu'un client paye, la ligne correspondant au client est grisée. Or, il y a 4000 lignes et donc c'est long de couper coller tous ces clients sur une autre feuille.

Je voudrais sélectionner sur une feuille Excel toutes les lignes grises, les couper et les coller sur une autre feuille.

Pour çà j'ai besoin d'un programme.

Si vous pouviez m'aider, je vous en serez très reconnaissant.

Cdt.
0
pascalouou Messages postés 46 Date d'inscription vendredi 6 octobre 2006 Statut Membre Dernière intervention 29 novembre 2008 172
22 févr. 2008 à 01:47
Bonjour
Si vous avez encore ce besoin je veux bien m'y atteler la semaine prochaine (gros week dès demain)
A plus
Pascal
0
Bonjour,
besoin d'aide rapidement, je veux savoir comment on fait une petite macro, pour qu'elle me selectionne une ligne entière d'une cellule en fond orange et écrit en rouge . le reste des cellules étant en fond blanc ecrit en noir.
1- recherche d'une cellule fond orange et écriture en rouge
2- selectionne la ligne de la cellule en question

merci bcp
0
Bonjour,

A l'adresse suivante, vous trouverez un cours détaillé vous permettant de réaliser des macros assez utiles et d'en comprendre parfaitement le principe: http://www.info-3000.com/vbvba/index.php

@+
0
bonjour, dans la premiere colonne de ma premiere feuille excel g differentes "cages allant de 1 a 20" comment puis-je faire pour que lorsque l'on tape cage 1 par exemple dans la colone les données soient copiés dans une deuxieme feuille , pour la cage 2 dans une 3 eme feuille etc... merci d'avance
0
Salut à tous,

Je viens de tester le couper coller automatique :

_la suppression des lignes vides ne fonctionne pas dans les onglet de destination


Gros défault, énormes defaut, meme

un fois la ligne 14 coupé de l'onglet origine et collée en ligne 14 de l'onglet de destination, c'est la ligne 15 de l'onglet orignie qui devient la ligne 14.
Quant elle est à son tour coupée, la ligne 15 de l'onglet origine, elle vien remplacer la ligne 14 de destination au lieu de s'inscrire dessous...
0