Aide pour une macro Excel 2007
Résolu/Fermé
chevalux1
Messages postés
47
Date d'inscription
mercredi 18 février 2009
Statut
Membre
Dernière intervention
9 juillet 2010
-
18 juin 2009 à 13:59
coco_rico Messages postés 32 Date d'inscription mercredi 17 juin 2009 Statut Membre Dernière intervention 19 juin 2009 - 19 juin 2009 à 14:33
coco_rico Messages postés 32 Date d'inscription mercredi 17 juin 2009 Statut Membre Dernière intervention 19 juin 2009 - 19 juin 2009 à 14:33
A voir également:
- Aide pour une macro Excel 2007
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Déplacer une colonne excel - Guide
- Calculer une moyenne sur excel - Guide
- Save as pdf office 2007 - Télécharger - Bureautique
28 réponses
coco_rico
Messages postés
32
Date d'inscription
mercredi 17 juin 2009
Statut
Membre
Dernière intervention
19 juin 2009
18 juin 2009 à 14:40
18 juin 2009 à 14:40
Sub Comment_ca_marche()
dim i as integer, j as integer, k as integer
i=1
k=1
while i<10 'la macro va tourner sur 9 lignes
if cells(i,18)="P" and datediff("yyyy",cells(i,21),date)>1 and (cells(i,24)<>"" or datediff("yyyy",cells(i,24),date)>1) then
for j=1 to n 'n=nombre de colonnes concernées
sheets("nom_destination").cells(k,j)=sheets("nom_source").cells(i,j)
next j
k=k+1
endif
i=i+1
wend
end sub
Commentaires: tu peux modifier les conditions aux bornes ou la condition de fin de boucle "while" pour que ça corresponde à tes besoins.
bon courage
dim i as integer, j as integer, k as integer
i=1
k=1
while i<10 'la macro va tourner sur 9 lignes
if cells(i,18)="P" and datediff("yyyy",cells(i,21),date)>1 and (cells(i,24)<>"" or datediff("yyyy",cells(i,24),date)>1) then
for j=1 to n 'n=nombre de colonnes concernées
sheets("nom_destination").cells(k,j)=sheets("nom_source").cells(i,j)
next j
k=k+1
endif
i=i+1
wend
end sub
Commentaires: tu peux modifier les conditions aux bornes ou la condition de fin de boucle "while" pour que ça corresponde à tes besoins.
bon courage
chevalux1
Messages postés
47
Date d'inscription
mercredi 18 février 2009
Statut
Membre
Dernière intervention
9 juillet 2010
18 juin 2009 à 15:35
18 juin 2009 à 15:35
Je dois avouer que je n'y comprend pas grand chose!
Je pense avoir compris pour les bornes si j'ai 5000 jignes je met i<5000.
Par contre, à quoi correspondent "nom_destination" et "nom source"
Ou faut il aller pour inscrire cette macro?
Merci beaucoup pour votre aide!
Je pense avoir compris pour les bornes si j'ai 5000 jignes je met i<5000.
Par contre, à quoi correspondent "nom_destination" et "nom source"
Ou faut il aller pour inscrire cette macro?
Merci beaucoup pour votre aide!
coco_rico
Messages postés
32
Date d'inscription
mercredi 17 juin 2009
Statut
Membre
Dernière intervention
19 juin 2009
18 juin 2009 à 15:37
18 juin 2009 à 15:37
" " définit une chaine, en l'occurence ce sont les noms des feuilles source et destination dans ton classeur.
a+
a+
chevalux1
Messages postés
47
Date d'inscription
mercredi 18 février 2009
Statut
Membre
Dernière intervention
9 juillet 2010
18 juin 2009 à 16:04
18 juin 2009 à 16:04
J'ai mis ça :
Sub Comment_ca_marche()
Dim i As Integer, j As Integer, k As Integer
i = 1
k = 1
While i < 6000
If Cells(i, 18) = "P" And DateDiff("yyyy", Cells(i, 21), Date) > 1 And (Cells(i, 24) <> "" Or DateDiff("yyyy", Cells(i, 24), Date) > 1) Then
For j = 1 To 40
Sheets("Ponctuel à relancer").Cells(k, j) = Sheets("SAV").Cells(i, j)
Next j
k = k + 1
End If
i = i + 1
Wend
End Sub
Les lignes que je veux "copier" sont dans SAV et je veux les amené a Ponctuel à relancer. Je pense que c'est bon.
Mais apparament il a une erreur dans la formule car il me surligne en jaune les éléments que j'ai souligné (If Cells...Then).
Sub Comment_ca_marche()
Dim i As Integer, j As Integer, k As Integer
i = 1
k = 1
While i < 6000
If Cells(i, 18) = "P" And DateDiff("yyyy", Cells(i, 21), Date) > 1 And (Cells(i, 24) <> "" Or DateDiff("yyyy", Cells(i, 24), Date) > 1) Then
For j = 1 To 40
Sheets("Ponctuel à relancer").Cells(k, j) = Sheets("SAV").Cells(i, j)
Next j
k = k + 1
End If
i = i + 1
Wend
End Sub
Les lignes que je veux "copier" sont dans SAV et je veux les amené a Ponctuel à relancer. Je pense que c'est bon.
Mais apparament il a une erreur dans la formule car il me surligne en jaune les éléments que j'ai souligné (If Cells...Then).
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
coco_rico
Messages postés
32
Date d'inscription
mercredi 17 juin 2009
Statut
Membre
Dernière intervention
19 juin 2009
18 juin 2009 à 16:18
18 juin 2009 à 16:18
quel est le message d'erreur?
chevalux1
Messages postés
47
Date d'inscription
mercredi 18 février 2009
Statut
Membre
Dernière intervention
9 juillet 2010
19 juin 2009 à 08:14
19 juin 2009 à 08:14
Le message d'esrreur est:
Erreur d'execution '13' : Imcompatibilité de type
Erreur d'execution '13' : Imcompatibilité de type
coco_rico
Messages postés
32
Date d'inscription
mercredi 17 juin 2009
Statut
Membre
Dernière intervention
19 juin 2009
19 juin 2009 à 09:29
19 juin 2009 à 09:29
slt,
dans les colonnes où l'on attend les dates, il y a des valeurs non numériques, regarde ou corrige le programme, tu sais le faire?
dans les colonnes où l'on attend les dates, il y a des valeurs non numériques, regarde ou corrige le programme, tu sais le faire?
chevalux1
Messages postés
47
Date d'inscription
mercredi 18 février 2009
Statut
Membre
Dernière intervention
9 juillet 2010
19 juin 2009 à 09:47
19 juin 2009 à 09:47
Il n'y a pourtant que des dates, mise à part la premiere ligne qui correspond à l'intitulé de la colonne.
coco_rico
Messages postés
32
Date d'inscription
mercredi 17 juin 2009
Statut
Membre
Dernière intervention
19 juin 2009
19 juin 2009 à 10:34
19 juin 2009 à 10:34
slt,
quand l'erreur survient, demande à déboguer, il t'emmènera dans la fenêtre VBA, fais successivement "Débogage\Ajouter espion" pour i, cells(i,21), cells(i,24) on doit pouvoir fixer la raison après, ok?
quand l'erreur survient, demande à déboguer, il t'emmènera dans la fenêtre VBA, fais successivement "Débogage\Ajouter espion" pour i, cells(i,21), cells(i,24) on doit pouvoir fixer la raison après, ok?
chevalux1
Messages postés
47
Date d'inscription
mercredi 18 février 2009
Statut
Membre
Dernière intervention
9 juillet 2010
19 juin 2009 à 10:42
19 juin 2009 à 10:42
J'ai mis i, cells(i,21), cells(i,24) dans Expression
Ensuite la procédure ioment_ca_marche
et dans module Module 1
Il y a un message d'erreur qui dit que L'expression espionne est incorrecte
Merci encore pour ton aide!
Ensuite la procédure ioment_ca_marche
et dans module Module 1
Il y a un message d'erreur qui dit que L'expression espionne est incorrecte
Merci encore pour ton aide!
coco_rico
Messages postés
32
Date d'inscription
mercredi 17 juin 2009
Statut
Membre
Dernière intervention
19 juin 2009
19 juin 2009 à 10:56
19 juin 2009 à 10:56
il faut faire la manip successivement pour chaque expression i, puis cells(i,21) puis cells(i,24)
chevalux1
Messages postés
47
Date d'inscription
mercredi 18 février 2009
Statut
Membre
Dernière intervention
9 juillet 2010
19 juin 2009 à 11:11
19 juin 2009 à 11:11
Ok c'est fait.
Il m'indique bien le nom des colonnes que je veux dans Valeur (i = 1 ; Cells(i, 21) = visité le et Cells(i, 24) = CE proposé le)
Que dois je faire ensuite?
Il m'indique bien le nom des colonnes que je veux dans Valeur (i = 1 ; Cells(i, 21) = visité le et Cells(i, 24) = CE proposé le)
Que dois je faire ensuite?
coco_rico
Messages postés
32
Date d'inscription
mercredi 17 juin 2009
Statut
Membre
Dernière intervention
19 juin 2009
19 juin 2009 à 11:15
19 juin 2009 à 11:15
mais alors dans la 21ième (U) et dans la 24ième (X) colonne, ce ne sont pas des dates comme t'avais mentionné dans ta question d'origine?
coco_rico
Messages postés
32
Date d'inscription
mercredi 17 juin 2009
Statut
Membre
Dernière intervention
19 juin 2009
19 juin 2009 à 11:21
19 juin 2009 à 11:21
ah, non, je me suis planté, j'ai oublié que t'avais une ligne de titre aussi !!!! autant pour moi, fais partir à partir de i=2 et là, ça devrait marcher ....
chevalux1
Messages postés
47
Date d'inscription
mercredi 18 février 2009
Statut
Membre
Dernière intervention
9 juillet 2010
19 juin 2009 à 11:24
19 juin 2009 à 11:24
Peux tu me dire comment on fait ça stp?
coco_rico
Messages postés
32
Date d'inscription
mercredi 17 juin 2009
Statut
Membre
Dernière intervention
19 juin 2009
19 juin 2009 à 11:27
19 juin 2009 à 11:27
dans la macro, avant le while, t'as i=1, change en i=2. et attention, pour j aussi, si dans ta feuille de destination t'as une ligne de titre, il faut faire "For j=2 to 40". J'espère que ça va marcher cette fois-ci.
chevalux1
Messages postés
47
Date d'inscription
mercredi 18 février 2009
Statut
Membre
Dernière intervention
9 juillet 2010
19 juin 2009 à 11:28
19 juin 2009 à 11:28
j'ai mis i = 2 et j'ai le meme message d'erreur
coco_rico
Messages postés
32
Date d'inscription
mercredi 17 juin 2009
Statut
Membre
Dernière intervention
19 juin 2009
19 juin 2009 à 11:31
19 juin 2009 à 11:31
dans la colonne U, la date est-elle toujours renseignée? (j'ai considéré que si)
chevalux1
Messages postés
47
Date d'inscription
mercredi 18 février 2009
Statut
Membre
Dernière intervention
9 juillet 2010
19 juin 2009 à 11:39
19 juin 2009 à 11:39
Apparament ça marche mais seulement dans le cas ou la cellule de la colonne U est vide mais pas quand la date est supérieur à 1 ans.
C'est déjà un début!
Est ce que ça peut venir du format de la date (14/01/2008)?
C'est déjà un début!
Est ce que ça peut venir du format de la date (14/01/2008)?
chevalux1
Messages postés
47
Date d'inscription
mercredi 18 février 2009
Statut
Membre
Dernière intervention
9 juillet 2010
19 juin 2009 à 11:46
19 juin 2009 à 11:46
Jai juste fait un essai en effaçant une date mais toutes les cellules étaient renseignées à la base.
Par contre c'est vrai que par la suite, elles ne seront pas forcément toutes renseignées.
Par contre c'est vrai que par la suite, elles ne seront pas forcément toutes renseignées.