Excel recherche et copie d une ligne

Résolu/Fermé
manu2183 - Modifié le 26 mars 2008 à 14:33
 Kardej - 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
A voir également:

9 réponses

WhiteFang Messages postés 2056 Date d'inscription dimanche 1 septembre 2002 Statut Membre Dernière intervention 15 février 2008 204
31 août 2005 à 16:17
;-)
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...

;-)
8
WhiteFang Messages postés 2056 Date d'inscription dimanche 1 septembre 2002 Statut Membre Dernière intervention 15 février 2008 204
31 août 2005 à 16:30
;-( J'ai fait une petite erreur : En relisant, tu auras compris que InC doit pointer sur Origine, pas sur Destination.... Désolé...
0
WhiteFang Messages postés 2056 Date d'inscription dimanche 1 septembre 2002 Statut Membre Dernière intervention 15 février 2008 204 > WhiteFang Messages postés 2056 Date d'inscription dimanche 1 septembre 2002 Statut Membre Dernière intervention 15 février 2008
31 août 2005 à 16:31
;-( T'in, encore une autre !! : Tu vires OutL de la boucle, tu met après next... Fatigué...
0
Georges_R > WhiteFang Messages postés 2056 Date d'inscription dimanche 1 septembre 2002 Statut Membre Dernière intervention 15 février 2008
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?
0
comment a tu débogué ?
0
Vous Remplacez ActiveCell par Cells
0
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
3
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
2
teleteube Messages postés 4 Date d'inscription dimanche 27 juillet 2003 Statut Membre Dernière intervention 7 février 2006 3
31 août 2005 à 13:38
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
0
WhiteFang Messages postés 2056 Date d'inscription dimanche 1 septembre 2002 Statut Membre Dernière intervention 15 février 2008 204
31 août 2005 à 14:31
;-) Et en plus court : Rows(1).Select...
0

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

Posez votre question
WhiteFang Messages postés 2056 Date d'inscription dimanche 1 septembre 2002 Statut Membre Dernière intervention 15 février 2008 204
31 août 2005 à 15:15
;-)

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 ?

;-)
0
bonjour,
peut tu afficher ta macro ?
stp
0
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
0
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
0
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.
0