Logo du forum
 

Forum TTH-News

| Inscription | | Recherche | | FAQ | | Accueil | | Liste des membres |
| Calendrier |
 
Vous n'êtes pas identifié! [Connexion] ou [Inscription] Forum » Programmation » [VB / VBA / VBS] » VBA - Recherche & copie plage de cellule
Login Mot de passe

2 visiteurs sur ce topic (0 membre(s), 2 invité(s) )


Auteur
Sujet : VBA - Recherche & copie plage de cellule
hyde7
Membre actif
Membre # 32781

 Avatar du membre
Lieu : Besancon

Messages :
97 (0.03 par jour)




Message du 24-09-2012 @ 12:33   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   


Bonjour à tous,

Je commence à faire du VBA pour l'école malheureusement je n'arrive pas à arriver au résultat désiré.

Mon but et d'ouvrir un fichier excel depuis Word (Fait), rechercher dans celui-ci une chaine de caractère et afficher la cellule correspondante (Fait) et ensuite depuis cette cellule copier/coller dans mon fichier Word la cellule avec les quatres autres à sa droite. (J'espère avoir été assez clair...) Et pour cette partie un coup de main ne serait pas de refus !

Code :

Sub RECHERCHE_VALEUR()

'Chaine recherché

REP = InputBox("Entrez la valeur recherchée")

'Recherche

Set R = Sheets("Rapport1").Range("A:G").Find(REP)

'si non trouvé

If R Is Nothing Then

MsgBox "la valeur " & REP & " n'a pas été trouvée"

Exit Sub

End If

'Si trouvé

If Not R Is Nothing Then

'Adresse cellule

MsgBox R.Address

End If

R.Address.range.copy

ActiveDocument.Bookmarks(2)

Selection.paste

End Sub



Merci pour votre aide.
- Haut de page -
Pinky
Modérateur
Membre # 7320

 Avatar du membre
Lieu : Den Haag

Messages :
13863 (2.58 par jour)


Score :

Message du 24-09-2012 @ 12:46   Site personnel   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

Tu es sur quelle version de Office ?
----------
Un PC pour jouer et un MacBook Pro pour tout le reste :)
Un MacBook Pro (mais pas Lion) pour faire comme tout le monde et un PC pour la vraie vie :)
- Haut de page -
hyde7
Membre actif
Membre # 32781

 Avatar du membre
Lieu : Besancon

Messages :
97 (0.03 par jour)




Message du 24-09-2012 @ 13:23   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

Bonjour Pinky,

Office 2003 SP2.
- Haut de page -
Pinky
Modérateur
Membre # 7320

 Avatar du membre
Lieu : Den Haag

Messages :
13863 (2.58 par jour)


Score :

Message du 24-09-2012 @ 14:27   Site personnel   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

Je n'ai pas la même version mais voilà ce que je ferai :
* If Bonne valeur
Then : fais ce qu'il faut faire
elseif
THen Afficher Pas trouvé
end sub

=> si la valeur n'est pas trouvé, tu as ton message qui va bien et tu quittes la fonction.
=> Je mettrais toutes les instructions dans le IF "OK", car de toute façon, ce n'est pas partagé

Que te renvoie : "MsgBox R.Address" ?
Cette ligne me chiffonne : R.Address.range.copy, le range est vide (mais ça fait super longtemps que je n'ai pas fait de VBA), est-ce normal ?
----------
Un PC pour jouer et un MacBook Pro pour tout le reste :)
Un MacBook Pro (mais pas Lion) pour faire comme tout le monde et un PC pour la vraie vie :)
- Haut de page -
hyde7
Membre actif
Membre # 32781

 Avatar du membre
Lieu : Besancon

Messages :
97 (0.03 par jour)




Message du 24-09-2012 @ 15:16   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

Msgbox R.Address renvoi l'adresse de la cellule trouvée, (Exemple : $B$45)

J'ai essayé

Range(R.address).Activate ou Select pour sélectionner la cellule mais j'ai une erreur.
- Haut de page -
Pinky
Modérateur
Membre # 7320

 Avatar du membre
Lieu : Den Haag

Messages :
13863 (2.58 par jour)


Score :

Message du 24-09-2012 @ 15:56   Site personnel   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

De mémoire la fonction Range fonctionne en (colonne, ligne) on ne peut pas l'utiliser de la façon aussi intuitive que tu l'écris ;)

En gros ça donnerait Range((B,45),(B,45)) à vérifier bien sûr.
----------
Un PC pour jouer et un MacBook Pro pour tout le reste :)
Un MacBook Pro (mais pas Lion) pour faire comme tout le monde et un PC pour la vraie vie :)
- Haut de page -


Aller dans le forum :  

Plan du forum | Contacter l'administrateur

Powered by SoulBB 3.0.1
© Soulmanto, 2003-2010

Valid XHTML 1.0 Transitional

Page générée en 0.027 secondes