apres un find remplacer Cell.EntireRow.Value

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

zephir94

XLDnaute Impliqué
Bonsoir à tous,

Après une recherche du type :

Code:
Set Cell = Feuil1.Columns(2).Find(Nom, LookIn:=xlValues, lookat:=xlWhole)
     If Cell Is Nothing Then MsgBox (" Le nom " & " " & pass & " " & "n'a pas été trouvé"), vbExclamation: Exit Sub

Je copie la ligne entière comme ceci :

Code:
Sheets("Agent").Rows("200:200").Value = Cell.EntireRow.Value

Mais hélas par la suite ma table va s'agrandir, et j'ai donc besoin de m'organiser autrement.
A à E en feuille 1 ne bougera pas mais la fin de ma table oui, donc pour cela j'ai crée par contrôle+F3 une zone Verif ( qui es à la fin de ma table feuille1 ou j'ai des sommes que je récupère ), je dois récupérer de la ligne trouvée, copier A à E de feuille1 vers feuille "agent" en ligne 200 soit A200 à E200 et récupérer de ma plage verif de la même ligne trouvée par find en feuille "agent" ligne 200 de EA200 à EH200

J'avais écris :

Code:
 Sheets("Agent").Rows("200:200").Value = Cell.Range(("A:E") & Range("verif")).Value

Mais j'ai un soucis de syntaxe !

Merci par avance
 
Dernière édition:
Re : apres un find remplacer Cell.EntireRow.Value

Bonsoir à tous


On a beau lui conseiller de joindre toujours et encore...
https://www.excel-downloads.com/thr...ifier-si-elles-sont-sur-la-meme-ligne.224026/
mais zephir94 semble avoir les oreilles disjointes et donc sourd à nos suppliques...

NB: zephir94: On ne joint jamais le fichier original mais on prends le temps de créer un fichier exemple allégé avec des données bidons mais avec le code VBA utilisé en réel.
Cela doit prendre moins de 20 minutes...
Tu as 20 minutes à nous consacrer ? Et ce juste pour que l'on puisse commencer à t'aider efficacement 😉

PS: Tu as oublié nos échanges de mai derniersur le forum ?
car à l'époque, tu as su joindre un fichier exemple 😉 et déjà j'évoquais avec toi comment anonymiser un fichier.
https://www.excel-downloads.com/thr...-donnees-dun-tableau-croise-dynamqiue.219934/
 
Dernière édition:
Re : apres un find remplacer Cell.EntireRow.Value

Merci voici un petit fichier que je viens de faire pour vous faire comprendre mon soucis, laissez moi juste cher Staple1600 le temps de le construire !


Merci par avance à toute l'aide que vous pourrez me donner

Cordialement
 

Pièces jointes

Dernière édition:
Re : apres un find remplacer Cell.EntireRow.Value

Re

zephir94
Créer le fichier exemple avant de poser la question serait plus judicieux, non ?
As-tu penser à joindre également un fichier dans le fil ou job75 te suggérait de la faire 😉 ?

Vue l'heure tardive, je laisse le soin aux petits camarades de jeu du forum prendre le relais pour t'aider 😉
et je repasserai voir plus tard comment évolue le fil 😉
 
Dernière édition:
Re : apres un find remplacer Cell.EntireRow.Value

Merci à toi, pour Job75 je n'aurais pas le temps pour l'instant je reprendrais ce point plus tard mais je te remercie de me le signaler

Dans mon fichier exemple en commentaire je me suis trompé il faut lire

Code:
range("verif").range("A13:H13)
 
Dernière édition:
Re : apres un find remplacer Cell.EntireRow.Value

Bonjour à tous,
Je pense que je vais changer mon approche du problème en passant par une fonction Find qui va me permettre de trouver le numéro de la ligne correspondante variable i par exemple,
Code:
Sub test()
Dim x As Range, a As String, I As Integer, 
Set x = Cells.Find("nom", , xlValues, xlWhole, , , False)
If Not x Is Nothing Then
    a = x.Address(0, 0)
    I= x.Row
    
End If
End Sub



et de copier avec un copie destination vers ma feuille2 les morceaux Range ("Ai:Ei") et Range("verif").Range("Ai:Hi")
Que pensez-vous de cette méthode ?
Je vais tester si vous avez une autre solution à me proposer je suis preneur !
 
Dernière édition:
Re : apres un find remplacer Cell.EntireRow.Value

Bonjour à tous


zephir94
Je viens d'ouvrir ta PJ
et j'ai modifié le code VBA existant ainsi
Code:
Dim Nom As String, Cell As Range
Application.ScreenUpdating = False

Nom = InputBox("Veuillez Saisir le Nom de l'agent")

If Nom = "" Then
    MsgBox "Vous n'avez pas saisi de Nom d'un agent !!!", _
    "Service formation C** F******s", vbExclamation
    Exit Sub
End If

Set Cell = Feuil1.Columns(2).Find(Nom, LookIn:=xlValues, lookat:=xlWhole)
If Cell Is Nothing Then MsgBox (" Le nom " & " " & pass & " " & "n'a pas été trouvé "), vbExclamation: Exit Sub

Sheets("feuil2").Cells(200, "A").Resize(, 5).Value = _
Cell.Offset(, -1).Resize(, 5).Value

Cela correspond-t-il à tes attentes ?
 
Dernière édition:
Re : apres un find remplacer Cell.EntireRow.Value

Bonjour et un grand merci,
si j'ai tout compris tu copie les 5 premières cellules en feuilles 2 rows200 mais je ne vois pas ma zone verif qui doit être copiée sur la feuille2 ligne 200 en EA200:EF200 ?
Que penses tu aussi de ce que je compte faire dans mon message précédent ?
Et pourrais tu je te prie retirer dans ton message de la partie code, la phrase service formation...
Un grand merci
 
Dernière édition:
Re : apres un find remplacer Cell.EntireRow.Value

Re


Et comme ceci, c'est mieux ?
Code:
Dim Nom As String, Cell As Range, DC&
Application.ScreenUpdating = False

Nom = InputBox("Veuillez Saisir le Nom de l'agent")

If Nom = "" Then
    MsgBox "Vous n'avez pas saisi de Nom d'un agent !!!", _
    "Service formation C** F******s", vbExclamation
    Exit Sub
End If

Set Cell = Feuil1.Columns(2).Find(Nom, LookIn:=xlValues, lookat:=xlWhole)
If Cell Is Nothing Then MsgBox (" Le nom " & " " & pass & " " & "n'a pas été trouvé "), vbExclamation: Exit Sub

DC = Cells(Cell.Row, Columns.Count).End(xlToLeft).Column
With Sheets("feuil2")
    .Cells(200, "A").Resize(, 5).Value = _
    Cell.Offset(, -1).Resize(, 5).Value
    .Range(Feuil2.Cells(200, "EA"), Feuil2.Cells(200, DC)).Value = _
    Feuil1.Range(Feuil1.Cells(Cell.Row, "EA"), Feuil1.Cells(Cell.Row, DC)).Value
End With
 
Dernière édition:
Re : apres un find remplacer Cell.EntireRow.Value

Un grand merci à toi,

Je vais tester dans la matinée, pourrais tu je te prie dans tes deux messages n°11 et n°9 retirer dans la partie code la phrase commençant par Service formation de la msgbox je te prie 5 j'ai du oublié de le retirer dans mon fichier exemple ),
J'ai posté aussi quelque chose que je voulais tester et tu ne m'as pas donné ton avis dans le message n°8
 
Re : apres un find remplacer Cell.EntireRow.Value

Finalement je viens de tester, la copie s'effectue bien mais cela ne répond pas à ma recherche car si tu ajoute deux colonnes entre feuille1 F et EA et bien la copie en feuille2 fait pareil !
C'est pour cette raison que j'ai crée une zone "vérif" car quelque soit le nombre de colonnes ajoutées entre F et EA il faut que les valeurs de EA:EH soient copiées dans la feuille2 en rows200 EA:EH, c'est pour cela que j'ai crée cette zone que l'on peut appeler avec

Code:
Range("verif").Range("A:H") car la colonne EA en feuille1  à comme nom A et quelque soit le nombre de colonnes ajouté sa position ne bouge pas !
et copier dans feuilles2 rows200 EA:EH

Je te remercie par avance, et espères avoir été claire dans mes explications
 
Dernière édition:
Re : apres un find remplacer Cell.EntireRow.Value

Re

Pour répondre à ta question sur la recherche du numéro de ligne
Puisqu'on a Cell qui est un Range, on a donc forcément un numéro de ligne (Row) et de colonne (Column)
Set Cell = Feuil1.Columns(2).Find(Nom, LookIn:=xlValues, lookat:=xlWhole)
donc
Cell.Row et Cell.Column
Tu peux donc les utiliser dans ton code si tu le souhaites
(C'est d'ailleurs ce que je fais dans mon code, non ? 😉 )
 
Re : apres un find remplacer Cell.EntireRow.Value

Re

Pour la dernière remarque de ton dernier message, il suffit d'adapter la syntaxe de mon VBA existant, non ?
Tu vois comment faire ?

NB:T outes les infos pour le faire sont déjà dans le fil, il suffit de modifier en conséquence 😉
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

J
Réponses
2
Affichages
1 K
jeremie42
J
B
Réponses
3
Affichages
2 K
betteggan
B
A
Réponses
8
Affichages
1 K
AntoineM
A
M
Réponses
3
Affichages
1 K
MarcTer
M
Retour