Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1368 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Copie d'une cellule d'un classeur vers un autre sous condition

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Copie d'une cellule d'un classeur vers un autre sous condition

n°1838043
vincenth16
Posté le 15-01-2009 à 00:24:45  profilanswer
 

Bonjour,
 
Voilà ce que je cherche à faire :
 
1. J'ai deux classeurs Excel A et B
A Contient une liste de véhicule (dont le nombre peut varier mais ne peut excéder 45) dans la colonne X.
B Contient plusieurs onglet avec le nom (ou pas) identique à la liste du classeur A de chaque véhicule
 
2. Je cherche à copier la range("A1" ) de chaque onglet du classeur B dans le classeur A, dans l'ordre des véhicules de la liste du classeur A...
 
Windows("A.xls" ).Activate
Sheets("Feuil1" ).Activate

'recherche chaque véhicule de la liste et vérifie que la cellule n'est pas vide
For each a in range ("X1:X45" )
if a <> "" Then

'recherche dans le classeur B l'onglet qui porte le nom du premier véhicule de la liste
Windows("B.xls" ).Activate
Set t = .Find(Sheets(1).Range(a).Value)
    If Not t Is Nothing Then

'Si il trouve l'onglet alors il active l'onglet et copie la cellule A1 dans le classeur A colonne Y
 ActiveSheets.Activate
Range("A1" ).copy
Windows("A.xls" ).Activate
Sheets("Feuil1" ).Activate
Range("Y1" ).Select
Selection.Paste

End if
next a
End Sub

 
Voici la macro que j'ai essayé mais bien entendu ça bloque dès la recherche dans le classeur B d'un onglet portant le nom du premier véhicule de la liste !
 
Je débute dans le milieux! Merci de m'aider à trouver un début de réponse !
 
Vincent.
 
 

mood
Publicité
Posté le 15-01-2009 à 00:24:45  profilanswer
 

n°1841279
Fred_l
Posté le 21-01-2009 à 19:24:21  profilanswer
 


 
Si tu utilises les offset ça va nettement Mieux....
 
Essais avec ce code....  
 

Code :
  1. Set rng = Sheets("B" ).Range("A1" )
  2. Set rng2 = Sheets("A" ).Range("A1" )
  3. rng2i = -1
  4. rng2j = 24 ' Colonne Y
  5. Sheets("A" ).Select
  6. Sheets("A" ).Activate
  7. 'recherche chaque véhicule de la liste et vérifie que la cellule n'est pas vide
  8. For Each a In Range("A1:A45" )
  9.     rngi = 0
  10.     rngj = 0
  11.     rng2i = rng2i + 1
  12.     If a <> "" Then
  13.         'recherche dans le classeur B l'onglet qui porte le nom du premier véhicule de la liste
  14.         Sheets("B" ).Select
  15.         Sheets("B" ).Activate
  16.         While rng.Offset(rngi, rngj).Value <> ""
  17.             rng.Offset(rngi, rngj).Select
  18.             t = rng.Offset(rngi, rngj).Value
  19.             If t = a Then
  20.             'Si il trouve l'onglet alors il active l'onglet et copie la cellule A1 dans le classeur A colonne Y
  21.                
  22.                 Sheets("A" ).Select
  23.                 Sheets("A" ).Activate
  24.                 rng2.Offset(rng2i, rng2j).Select
  25.                 rng2.Offset(rng2i, rng2j).Value = rng.Offset(rngi, rngj).Value
  26.                 Sheets("B" ).Select
  27.                 Sheets("B" ).Activate
  28.                
  29.             End If
  30.             rngi = rngi + 1
  31.         Wend
  32.     End If
  33.     Sheets("A" ).Select
  34.     Sheets("A" ).Activate
  35. Next a


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Copie d'une cellule d'un classeur vers un autre sous condition

 

Sujets relatifs
[CVS] Migrer un repository Windows vers Unixexport vers fichier csv: grouper 2 informations en 1?
Target vers la page principaleRTF vers TXT
[C] Conversion Hexa vers ASCIIPourquoi ne pas pointer vers un élément courant dans une liste chainée
Importation des données depuis SQL vers EXCELCopier des cellules sous condition avec boucle
Copie BD Mysql importantesProblème avec condition dans script batch
Plus de sujets relatifs à : Copie d'une cellule d'un classeur vers un autre sous condition


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR