VBA excel, petite macro a reparer - VB/VBA/VBS - Programmation
Marsh Posté le 26-04-2012 à 10:11:30
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é
Marsh Posté le 26-04-2012 à 10:32:42
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
Marsh Posté le 26-04-2012 à 10:54:15
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 :
|
Et tu as oublié une correction :
Cells(A, numlig).Select
Marsh Posté le 26-04-2012 à 11:03:12
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?
Marsh Posté le 26-04-2012 à 11:22:13
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"
Marsh Posté le 26-04-2012 à 09:49:55
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