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
urban - 23 mai 2008 à 00:04
A voir également:
- Vba selectionner une ligne en fonction d'une valeur
- Fonction si et - Guide
- Partager photos en ligne - Guide
- Vente en ligne particulier - Guide
- Aller à la ligne dans une cellule excel - Guide
- Ligne occupée - Forum SFR
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
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
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 250
22 oct. 2007 à 17:28
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
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
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 250
23 oct. 2007 à 18:26
23 oct. 2007 à 18:26
De rien Swindler
Pense à mettre résolu si tout te parait ok
Merci
eric
Pense à mettre résolu si tout te parait ok
Merci
eric
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.
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.
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
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
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...
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.
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 714
22 janv. 2008 à 15:42
22 janv. 2008 à 15:42
bonjour
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.
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.
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
J'avais le droit a une erreur d'incompatibilité entre Ligne qui était du type double et Rw.Rows
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 714
22 janv. 2008 à 17:18
22 janv. 2008 à 17:18
bonjour
et comme ceci :
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
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
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.
Rows("553:553").Select
Selection.RowHeight = 25
C'est pour que toutes les lignes soit de taille 25.
Le problème c'est que lorsque la macro s'éxécute, elle n'arrive pas a aller dans la bouche For Each.
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+
Bonne fin de journée à toi.
A+
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.
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.
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
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
Si vous avez encore ce besoin je veux bien m'y atteler la semaine prochaine (gros week dès demain)
A plus
Pascal
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
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
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
@+
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
@+
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
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...
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...