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

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  VBA excel, petite macro a reparer

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

VBA excel, petite macro a reparer

n°2139147
jay_le_ouf
Posté le 26-04-2012 à 09:49:55  profilanswer
 

bonjour tout le monde,
 
je souhaite faire une macro tout simple:  
 
dans l'onglet "Performance table - SDIV ASIA", j'ai une liste de produits en colonne B et sur ma colonne H j'ai la quantite commande.  Je souhaiterais demander a la macro de me copier/ colle le nom de tous mes produits ayant ete commandes donc tous ceux qui ont une quantite de commande superieure a 0 dans l'onglet "Dividend chart".
 
J'ai ecrit la macro suivante mais vba m'affiche le message d'erreur suivant " run time error 13: type mismatch"
 
Sub rapatrier_lignes()
Dim Col As String
Dim Lig As Long
Dim derlig As Long
Dim nbrlig As Long
 
 
Col = "H"
numlig = 1
derlig = Sheets("Performance table - SDIV ASIA" ).[Q65536].End(xlUp).row
 
 
For Lig = 1 To derlig
Sheets("Performance table - SDIV ASIA" ).Select
   If Cells(Col, Lig).Value <> "" Then
       Cells(B, Lig).Select
       Selection.Copy
       
       Sheets("Dividend chart" ).Select
       numlig = numig + 1
       Cells(A, numlig).Select
       ActiveSheet.Paste
     
    End If
    Next
End Sub
 
 
est ce que quelqu'un peut m'expliquer ce qui cloche???
 
 
Merci d'avance

mood
Publicité
Posté le 26-04-2012 à 09:49:55  profilanswer
 

n°2139151
vave
Nice to meet me
Posté le 26-04-2012 à 10:11:30  profilanswer
 

Bonjour,
si tu vas voir l'aide pour cells(), tu verras que :
1) c'est cells(ligne, colonne) et non l'inverse
2) colonne doit être un entier
 
Donc, par exemple :
ce n'est pas Col = "H" , mais Col = 8
ce n'est pas Cells(Col, Lig).Value, mais Cells(Lig, Col).Value
 
Il y en a d'autres à corriger dont la déclaration de variables :
Dim Col As String Integer
 
Si ça ne fonctionne toujours pas, reviens poster ton code corrigé  :)


---------------
Bel ours Vave, je me dois de l’admettre. -Skyl"win"-  Mais toi tu es intelligent -Homerde- - Ce génie -SkylWINd- JDD S16M72 10:43:46 GMT-DTC +1
n°2139159
jay_le_ouf
Posté le 26-04-2012 à 10:32:42  profilanswer
 

hello,
 
merci pour ton aide, j'ai fait les changements. le code s'execute mais il ne se passe rien.
 
rien n'est copie sur le fichier "dividend chart". mais formule de copie/ colel est peut etre mauvaise....
voici mon code:  
Sub rapatrier_lignes()
Dim Col As Integer
Dim Lig As Long
Dim derlig As Long
Dim nbrlig As Long
 
 
Col = "8"
numlig = 1
derlig = Sheets("Performance table - SDIV ASIA" ).[Q65536].End(xlUp).row
 
 
 
 
For Lig = 1 To derlig
Sheets("Performance table - SDIV ASIA" ).Select
   If Cells(Lig, Col).Value <> "" Then
       Cells(Lig, 2).Copy
       
       Sheets("Dividend chart" ).Select
       numlig = numlig + 1
       Cells(A, numlig).Select
       ActiveCell.Paste
     
    End If
    Next
End Sub
 
 
 
 
 

n°2139170
vave
Nice to meet me
Posté le 26-04-2012 à 10:54:15  profilanswer
 

Ta colonne Q est bien remplie ?
 
Parce que ta dernière ligne se base sur la dernière cellule remplie de la colonne Q :

Code :
  1. derlig = Sheets("Performance table - SDIV ASIA" ).[Q65536].End(xlUp).row


 
Et tu as oublié une correction :
Cells(A, numlig).Select


---------------
Bel ours Vave, je me dois de l’admettre. -Skyl"win"-  Mais toi tu es intelligent -Homerde- - Ce génie -SkylWINd- JDD S16M72 10:43:46 GMT-DTC +1
n°2139171
jay_le_ouf
Posté le 26-04-2012 à 11:03:12  profilanswer
 

ah  mince j'avais oublie ce detail, j'ai mis H a la place de q.
 
pui sj'ai bien mis Cells(numlig, A).Select
 
mais ca ne marche tjs pas...
 
tu as une idee de c equi cloche?

n°2139174
vave
Nice to meet me
Posté le 26-04-2012 à 11:22:13  profilanswer
 

Oui, j'ai une idée :
Cells(numlig, 1)
 
Si tu relies mon premier message :

Citation :

2) colonne doit être un entier


 
D'ailleurs, puisque c'est un entier, il faut aussi que tu enlèves les guillemets :
Col = "8"


---------------
Bel ours Vave, je me dois de l’admettre. -Skyl"win"-  Mais toi tu es intelligent -Homerde- - Ce génie -SkylWINd- JDD S16M72 10:43:46 GMT-DTC +1

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

  VBA excel, petite macro a reparer

 

Sujets relatifs
Soucis VBA sur Excel 2010maccro VBA
Copier/Coller sous-clef de registre VBAApprendre le VBA
Excel ( macro pour pense bête) RESOLUProgrammation dans excel
[excel] Gestion des heures supp.Macro excel avec globbing
Plus de sujets relatifs à : VBA excel, petite macro a reparer


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