macro/excel/probleme de selection

F

feitarassgat

Guest
<HTML>salut a tous
etant newbie en la matiere excusez moi

voila mon pb
sur excel j'ai 2 bdd ds 2 feuilles differentes et ds une 3eme
feuille,j'ai fait une macro qui ouvre une fenetre, ds cette fenetre
j'y rentre une reference, la macro balaie ensuite la 1ere colonne de
la bdd et recherche la valeur tapee precedemment pour la recopier(des
qu'elle est trouvee) ds la 3eme feuille
le pb c'est que j'aimerais qu'il balaie toute la feuille et non que
la 1ere colonne
voila

merci pour vos reponses
feitarassgat
pj:le code

Dim Number As String, j As Double, k As Double

Number = InputBox("Numero de MontMirail ? ")
If Number = "" Then Exit Sub
If Not Len(Number) = 9 Then Exit Sub

Sheets("SUN").Select
Columns("A:G").Select


j = 2: k = 3

Do While Cells(j, 1) <> ""
If Cells(j, 1) = Number Then
Rows(j).Select
Selection.Copy
Sheets("Resultat").Select
Cells(k, 1).Select
ActiveSheet.Paste
k = k + 1
Sheets("SUN").Select
End If
j = j + 1

Loop
Sheets("winpass").Select
Columns("A:A").Select
Rows("2:1").Select

j = 2: k = 15

Do While Cells(j, 1) <> ""
If Cells(j, 1) = Number Then
Rows(j).Select
Selection.Copy
Sheets("Resultat").Select
Cells(k, 1).Select
ActiveSheet.Paste
k = k + 1
Sheets("winpass").Select
End If
j = j + 1

Loop
Sheets("Resultat").Select</HTML>
 
T

Thierry

Guest
<HTML>Bonjour Feitarassgat,

Je me suis penché sur ton problème... D'ailleurs c'est un gros problème vu que tu le pose sur d'autre forum... ;o)

Bon j'ai tout repris de ce que tu as fait....

Cette macro fonction avec :
1) Une feuille "Collection" avec une en-tête :

NOM PRENOM ADRESSE VILLE Dept

2) Une Feuille BD1 avec des données comme suit
NOM PRENOM ADRESSE VILLE Dept
toto Pierre 6, Rue du Pin Nice 06
zaza Paul 15, Rue des Roses Menton 06
toto Paul 1, Avenue du Soleil Cannes 06
Etc etc

3) Une Feuille BD2 avec des données comme suit
NOM PRENOM ADRESSE VILLE Dept
tutu Pierre 25, rue des Fleurs Nice 06
titi Paul 1, Rue des Sapins Paris 75
kiki Pierre 18, rue des Cèdres Cannes 06

SOIT LES 2 BDD ET LA FEUILLE DE COLLECTION IDENTIQUES (on peut varier les formats des bases mais c'est plus compliqué)

La macro si dessous, cherchera DANS TOUS LES CHAMPS de A à E jusqu'à la dernière ligne de chacune de tes deux bases.

Elle reportera AUTANT DE FOIS la ligne où elle aura trouvée la valeur cible demandée en INPUT box (attention sensible MAJ/MIN)

Exemple tu tapes Paul, la macro remontera en feuille collection :
NOM PRENOM ADRESSE VILLE Dept
zaza Paul 15, Rue des Roses Menton 6
toto Paul 1, Avenue du Soleil Cannes 6
titi Paul 1, Rue des Sapins Paris 75

A noter que la macro incrémentera dans la feuille "collection" les résultats des recherches successives, les uns à la suite des autres (sans effacer/écraser le résultat des anciennes recherches, mais on peut modifier.....)

Je ne sais pas si c'est ce que tu veux ??? en tout cas çà marche...
(Classeur à dispo)

Bonne fin de Dimanche
@+Thierry

=THE MACRO=====(à copier dans un module standard)========
Sub Chercher()

'Macro rédigée par Thierry Eygenraam, (eygenraam.thierry@laposte.net)

Dim LigneCollect As Integer
Dim LigneBD1 As Integer
Dim LigneBD2 As Integer

Recherche = InputBox("Votre recherche ? (attention aux Majuscules/Minuscules) ")

'TRAITEMENT BASE DE DONNES UN
Sheets("BD1").Select
Range("A1", Range("A1").End(xlDown)).Select
For LigneBD1 = 1 To Selection.Cells.Count
For ColonneBD1 = 1 To 5
If Cells(LigneBD1, ColonneBD1).Value = Recherche Then
LigneCollect = Sheets("Collection").Range("a65536").End(xlUp).Row + 1
Sheets("Collection").Range("A" & LigneCollect & ":E" & LigneCollect).Value = _
Sheets("BD1").Range("A" & LigneBD1 & ":E" & LigneBD1).Value
End If
Next ColonneBD1
Next LigneBD1

'TRAITEMENT BASE DE DONNES DEUX
Sheets("BD2").Select
Range("A1", Range("A1").End(xlDown)).Select
For LigneBD2 = 1 To Selection.Cells.Count
For ColonneBD2 = 1 To 5
If Cells(LigneBD2, ColonneBD2).Value = Recherche Then
LigneCollect = Sheets("Collection").Range("a65536").End(xlUp).Row + 1
Sheets("Collection").Range("A" & LigneCollect & ":E" & LigneCollect).Value = _
Sheets("BD2").Range("A" & LigneBD2 & ":E" & LigneBD2).Value
End If
Next ColonneBD2
Next LigneBD2
End Sub</HTML>
 
J

Jean-Pierre Auderset

Guest
Hello à tous

J'ai un programme pour entreprise sur CD-Rom, nommé "Bati2000", et conçu avec Excel, que j'ai installé plusieurs fois sans problème sur mes différents PC. (Winn98 avec Office 2000 Premium)
Or maintenant, j'ai migré Win2000, toujours avec Office 2000 Premium, et lorsque
je veux ouvrir le dossier-programme "Bati2000", après l'avoir copié sur le
C et enlevé en lecture seule, j'ai toujours le message suivant: "impossible d'ouvrir ce classeur car il est protégé par un mot de passe avec une méthode de chiffrement qui n'est pas disponible dans ce pays. Demandez une version non protègé (c.-à-d. sans mot de passe à l'auteur du classeur". Pourtant il n'y a pas de mot de passe, étant donné que je l'ai installé plusieurs fois, avant....
J'ai mis les macros sur le niveau de sécurité bas et j'ai rajouté les macros supplémentaires VBA, mais j'ai toujours ce message d'erreur.......???
Tout est en français (suisse).
Ne trouvant pas de solutions, j'ai alors reconfiguré un de mes PC avec Win98 et
Office 2000 Premium, comme avant,......... et là....tonnerre !!!............j'ai
maintenant également le même message d'erreur...........!!
Je ne pense pas que c'est un problème de OS, mais plutôt de Excel.

Merci pour toute aide.....................
 
H

haddad

Guest
comment utiliser la fonction macro

Bonjour,

En fait, je ne sais pas comment utiliser la fonction macro de l'excel?
Pourriez vous s'il vous plait me décrire d'une manière très claire et compréhensible les différentes étapes de l'utilisation de cette fonction?
merci beaucoup de votre aide.
 

Discussions similaires

Statistiques des forums

Discussions
312 111
Messages
2 085 403
Membres
102 883
dernier inscrit
jameseyz