VIVEZ LE
FOOTBALL !

Posez votre question Signaler

Excel recherche et copie d une ligne [Résolu]

manu2183 - Dernière réponse le 3 janv. 2012 à 15:54
bonjour et merci d avance
je souhaiterai dans un tableau excel créer une macro afin de chercher un mot dans une colonne et copier ensuite toute la ligne dans un onglet diffférent .
Après les divers essais que j ai fait j arrive bien à selectionner la cellule copmrenant le mot dans la colonne mais j arrive pas à étendre la sélection à la ligne .
Merci d avance de votre aide
Lire la suite 

Excel recherche et copie d une ligne »

15 réponses
Réponse
+7
moins plus
;-)
Dim MotCherche, L, C, InL, InC, OutL
Dim Origine, Destination
Set Origine = Workbooks(1).Sheets(1)
Set Destination = Workbooks(1).Sheets(2)
MotCherche = "un truc"
InL = Origine.ActiveCell.SpecialCells(xlCellTypeLastCell).Row
InC = Destination.ActiveCell.SpecialCells(xlCellTypeLastCell).Column
OutL = Destination.ActiveCell.SpecialCells(xlCellTypeLastCell).Row
For L = 1 To InL
  If Origine.Cells(L, 1).Value = MotCherché Then
    For C = 1 To InC
      Destination.Cells(OutL, C).Value = Origine.Cells(L, C).Value
      OutL = OutL + 1
      Next
    End If
  Next


Un petit exemple... Sachant que la variable MotCherché contient ce que tu cherches, et que la colonne à explucher est la colonne 1, que le classeur d'origine est le premier classeur ouvert et la feuille d'origine est la première feuille, la feuille destination est la 2 ème feuille du classeur 1... tu n'as plus qu'a remplacer avec tes données à toi, et extrapoler...

;-)
Georges_RWhiteFang - 22 oct. 2009 à 15:26
Bonjour,

J'ai essayé le code mais

Lorsque la commande arrive à :

InL = Origine.ActiveCell.SpecialCells(xlCellTypeLastCell).Row
InC = Origine.ActiveCell.SpecialCells(xlCellTypeLastCell).Colu­mn
OutL = Destination.ActiveCell.SpecialCells(xlCellTypeLastCell).Row


j'obtiens le message d'erreur:
"Erreur d'éxécution '438': Propriété ou méthode non gérée par cet objet

Pouvez-vous m'apporter votre aide SVP?
caroline - 23 juin 2010 à 16:11
comment a tu débogué ?
Kardej - 3 janv. 2012 à 15:54
Vous Remplacez ActiveCell par Cells
Ajouter un commentaire
Réponse
+3
moins plus
merci à tous mais j ai solutionné mon problème .
il me faut maintenant
Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 30/08/2005 par GuimarEm

Dim tableau(50), i, j, k

i = 2
j = 0

While i < 50
If Workbooks("xx").Sheets("Feuil1").Cells(8, i) = "x" Then
tableau(j) = Workbooks("xx.xls").Sheets("Feuil1").Cells(7, i)
j = j + 1
End If
i = i + 1
Wend

k = 5
j = 0
While tableau(j) <> ""
i = 2
While i < 1000
While Workbooks("xx.xls").Sheets("maxcase").Cells(i, 35) <> tableau(j) And i < 1000
i = i + 1
Wend
Workbooks("xx.xls").Sheets("maxcase").Rows(i).Copy
Sheets("tableau").Select
Rows(k).Select
ActiveSheet.Paste
k = k + 1
i = i + 1
Wend
j = j + 1
Wend

End Sub

voici mon programme toute fois un problème subsiste dans la ligne

While Workbooks("xx.xls").Sheets("maxcase").Cells(i, 35) <> tableau(j) And i < 1000

car tout va bien quand il y a que la chaine de caratere spécifié mais quand il y a la chaiine de caractère plus une autre chaine dans la meme cellule il bne veut pas prendre la cellule alors que je voudrai
Connaissez vous l opérateur permettant de le lui dire
Ajouter un commentaire
Réponse
+2
moins plus
merci à tous pour votre aide .
Pour faire comprendre le prog que j ai fait qui a un peu changé depuis je vais m expliquer un peu mieux.
le fichier excel contient 3 onglets le premier contient un tableau avec des cases à cocher representant des options . le deuxième contient l intitulé du tableau et le 3 toutes les données en fonction des otpions . donc le porg vise après avoir coché les options on lance le prog et il va remplir le tableau de la 2 feuille en fonction des options et des données de la troisième feuille.
En tout cas je vous remercie tous beaucoup
Ajouter un commentaire
Réponse
+0
moins plus
Pour selectionner la ligne complete de la cellule A2 par exemple:

Sub SelectionLigne()
Range("A2").EntireRow.Select
End Sub

Voila j'espere que c'est ce que tu voulais.
ciao
WhiteFang- 31 août 2005 à 14:31
;-) Et en plus court : Rows(1).Select...
Ajouter un commentaire
Réponse
+0
moins plus
;-)

Cela me paraît énorme, en lignes, par rapport au problème...

Une question : Comment et est défini le mot à rechercher, pour la copie ?

;-)
Ajouter un commentaire
Réponse
+0
moins plus
bonjour,
peut tu afficher ta macro ?
stp
Ajouter un commentaire
Réponse
+0
moins plus
J'ai 4 colonnes. La premier contient un numéro, la deuxieme une liste, la troisieme un numéro la quatrième une liste.
Je souhaite inscrire dans une cinquième colonne le numéro de la colonne 1 dont le champs de la colonne 2 est identique à celui de la colonne 4 et ceci sur la ligne du champs de la colonne 4
Merci
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour,

Je me suis inspiré de la macro de WhiteFAng pour écrire la macro ci-dessous...

L'objectif est de copier le contenu de 2 cellules de la feuille source vers 2 cellules de la feuille cible pour toute les lignes dont la valeur REFERENCE sont identiques:

Mais l'execution plante avec le msg suivant : Objet Requis
Je ne vois pas quel objet n'est pas déclaré ... Une idée ?
Merci Beaucoup

Sub MAJ()
'
' Macro MAJ Mise à Jour Stock
'
Dim Reference, Cref, Quantite, Cqua, Unitaire, Cuni, L, LMIN, LMAX
Dim Source, Cible
Set Source = Workbooks("Stock2008").Sheets("Saisie")
Set Cible = Workbooks("Stock2008").Sheets("Stocks")
Set LMIN = 4
Set LMAX = 403
Set Cref = 2
Set Cqua = 4
Set Cuni = 6
Reference = Source.Range("A3:B3").Select
For L = LMIN To LMAX
If Cible.Cells(L, Cref).Value = Reference Then
Quantite = Source.Range("D14:D14").Select
Cible.Cells(L, Cqua).Value = Quantite
Unitaire = Source.Range("F14:F14").Select
Cible.Cells(L, Cuni).Value = Unitaire
Next
End If
End Sub
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour,

Dans le même ordre d'idées:

voici mon tableau:

Intitulé Nom Prenom
dn: Lecoq,OU=utilisateur,OU=Test,DC=fr,DC=machin,DC=local CN=Yves
changetype: add
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: user
cn: Lecoq Yves
displayName: Lecoq Yves
sAMAccountName: ylecoq

dn: Coluche,OU=utilisateur,OU=Test,DC=fr,DC=machin,DC=local CN=Michel
changetype: add
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: user
cn: Coluche Michel
displayName: Coluche Michel
sAMAccountName: mcoluche

changetype: add
sAMAccountName: ajoly
cn: Joly Angelina
displayName: Joly Angelina
dn: Joly,OU=utilisateur,OU=Test,DC=fr,DC=machin,DC=local CN=Angelina
objectClass: organizationalPerson
objectClass: person
objectClass: top
objectClass: user

dn: Ricard,OU=utilisateur,OU=Test,DC=fr,DC=machin,DC=local CN=Paul
changetype: add
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: user
cn: Ricard Paul
displayName: Ricard Paul
sAMAccountName: pricard


Je souhaite recuperer de la colonne 1 le sAMAccountName: et le contenu se situant dans la colonne 3
ainsi que le displayName et le contenu se situant en colonne 2 et 3

Pour mettre ceci dans une autre feuille, et les regrouper:
du style:
samaccountname: pricard
CN: ricard paul


J'espère avoir été assez explicite.
Merci pour toutes aides.
Ajouter un commentaire
Ce document intitulé « Excel recherche et copie d une ligne » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?