Macro en basic excel

Fermé
test - 20 mai 2011 à 14:41
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 27 mai 2011 à 22:22
Bonjour,

J'hésitais à poser la question dans cette catégorie, étant donné qu'elle concerne excel mais dans l'absolu ca reste de la programmation basic.
Alors n'étant pas du tout familier avec ce langage, et en ayant besoin pour une macro, je vous expose mon problème.
Je veux créer un script qui compare deux lignes d'un même fichier et qui copie la ligne récurrente. En C ca me parait évident. Mais la je crois que ca merde dans l'intégration de boucles. Je vous joint mon code source, merci de votre aide :D

Sub comparaison()
'
'
'
'
'
Dim VALEURA As String, VALEURB As String, i As Integer, j As Integer, VALEURC As String
'
'
'
j = 1
For i = 1 To 810

Do Until j = 1000
VALEURA = Range("A" & i).Value
VALEURB = Range("C" & j).Value
j% = j + 1
If VALEURA = VALEURB Then
Range("A" & i).Select
Selection.Copy
Range("E" & i).Select
ActiveSheet.Paste
End If
Loop
Next

'
'
End Sub

A voir également:

2 réponses

melanie1324 Messages postés 1504 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 155
23 mai 2011 à 12:35
Bonjour,

je modifierais ton code comme suit essaie et dis moi si le resultat correspond à ce que tu veux :


Dim VALEURA As String, VALEURB As String, i As Integer, j As Integer, VALEURC As String
'
'
'
For i = 1 To 810
VALEUR = cells(i,1) ' échangé contre Range("A" & i).Value
VALEURS = cells(i,3) 'échangé contre Range("C" & j).Value
If VALEUR = VALEURS Then
cells(i,5) = VALEUR 'échangé contre Range("E" & i).Select

End If
Next
'
'
End Sub
0
pilas31 Messages postés 1825 Date d'inscription vendredi 5 septembre 2008 Statut Contributeur Dernière intervention 24 avril 2020 644
23 mai 2011 à 15:05
Bonjour Melanie et test,

Je ne comprends pas bien l'objectif mais a priori, les boucles sont mal imbriquées. Il faut sans doute réinitialiser J dans la boucle sinon après la première itération il reste égal à 1000.

Donc au début plutôt écrire :


For i = 1 To 810
j = 1


A+
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 312
23 mai 2011 à 16:23
Bonjour

en regardant le code, j'ai comme l'impression que notre ami Test (quel beau pseudo, ma foi!)
cherche à faire la liste des éléments communs dans les colonnes A et B...

suivant la réponse, je proposerais un code ou pas...
0
Merci à vous!
j'ai pas pris le temps de revenir, mais je sais combien il est énervant pour ceux qui passeront sur ce poste de ne pas avoir de réponse.
@michel_m: c'était bel et bien l'objectif.

la solution finalement est toute bête. les sauts de lignes empêchaient l'exécution ...
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 312
27 mai 2011 à 22:22
Bonsoir,

Donc, c'est résolu ?
0