Macro en basic excel
test
-
michel_m Messages postés 18903 Date d'inscription Statut Contributeur Dernière intervention -
michel_m Messages postés 18903 Date d'inscription Statut Contributeur Dernière intervention -
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
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:
- Macro en basic excel
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Mise en forme conditionnelle excel - Guide
- Microsoft 365 basic - Accueil - Microsoft Office
2 réponses
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
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
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+
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+