Comparaison en vba
zef
-
zef62 -
zef62 -
Bonjour,
je dois comparer la valeur des cellules d'une colonne et copier coller dans un autre fichier le contenu de la ligne lorsqu'il y a correspondance mais je n'arrine pas a programmer cette comparaison(oui je debute mince)
voici ma macro qui je vous rassure et juste un raccourci de ce que je doit faire
Private Sub CommandButton1_Click()
Range("a1").Select
Do While ActiveCell.Value <> ""
ActiveCell.Offset(1, 0).Range("a1").Select
If (Range("a1") = 7411) Then
Selection.Copy
Range("a8").Select
Selection.Paste
End If
Loop
ActiveCell.Offset(1, 0).Range("a1").Select
End Sub
quelqu'un peut il m'aider svp !! je craque lol
merci d'avance
je dois comparer la valeur des cellules d'une colonne et copier coller dans un autre fichier le contenu de la ligne lorsqu'il y a correspondance mais je n'arrine pas a programmer cette comparaison(oui je debute mince)
voici ma macro qui je vous rassure et juste un raccourci de ce que je doit faire
Private Sub CommandButton1_Click()
Range("a1").Select
Do While ActiveCell.Value <> ""
ActiveCell.Offset(1, 0).Range("a1").Select
If (Range("a1") = 7411) Then
Selection.Copy
Range("a8").Select
Selection.Paste
End If
Loop
ActiveCell.Offset(1, 0).Range("a1").Select
End Sub
quelqu'un peut il m'aider svp !! je craque lol
merci d'avance
A voir également:
- Comparaison en vba
- Comparaison million milliard - Accueil - Technologies
- Logiciel comparaison photo gratuit - Télécharger - Photo & Graphisme
- Excel compter cellule couleur sans vba - Guide
- Incompatibilité de type vba ✓ - Forum VB / VBA
- Erreur 13 incompatibilité de type VBA excel ✓ - Forum Excel
11 réponses
Il me semble que cette réaction est normale car tu "figes" la ligne en codnat A10 ou A13 alors qu'il faudrait que cette valeur évilue aussi.
c bon ca fonctionne merci de ton aide
j'ai neanmoins une derniere question :
j'ai creer un bouton mais je dois cliquer pour envoyer chaque boucle ,comment faire pour que les boucles s'enchaine a la suite.
encore mille fois merci!!
Private Sub CommandButton1_Click()
Sheets("feuil1").Select
Range("a1").Select
Dim cell
Dim I As Long
Dim Plage As Range
Set Plage = Range("a2:a" & Range("a2").End(xlDown).Row)
For I = Plage.Cells.Count To 1 Step -1
If Plage.Cells(I).Value = 7411 Then
Do While ActiveCell.Value <> ""
Plage.Cells(I).EntireRow.Cut
Sheets("feuil2").Select
cel = ActiveCell.Address
ActiveSheet.Paste
ActiveCell.Offset(3, 0).Select
Loop
End If
Next
End Sub
j'ai neanmoins une derniere question :
j'ai creer un bouton mais je dois cliquer pour envoyer chaque boucle ,comment faire pour que les boucles s'enchaine a la suite.
encore mille fois merci!!
Private Sub CommandButton1_Click()
Sheets("feuil1").Select
Range("a1").Select
Dim cell
Dim I As Long
Dim Plage As Range
Set Plage = Range("a2:a" & Range("a2").End(xlDown).Row)
For I = Plage.Cells.Count To 1 Step -1
If Plage.Cells(I).Value = 7411 Then
Do While ActiveCell.Value <> ""
Plage.Cells(I).EntireRow.Cut
Sheets("feuil2").Select
cel = ActiveCell.Address
ActiveSheet.Paste
ActiveCell.Offset(3, 0).Select
Loop
End If
Next
End Sub
voila pour conclure comment j'ai resolu le pb de boucle encore merci a toi giheller pour tes aides successives.
Private Sub CommandButton1_Click()
Sheets("feuil1").Select
Range("a1").Select
Dim cell
Dim I As Long
Dim Plage As Range
Set Plage = Range("a2:a" & Range("a2").End(xlDown).Row)
For I = Plage.Cells.Count To 1 Step -1
If Plage.Cells(I).Value = 7411 Then
Do While ActiveCell.Value <> ""
Plage.Cells(I).EntireRow.Cut
Sheets("feuil2").Select
cel = ActiveCell.Address
ActiveSheet.Paste
ActiveCell.Offset(3, 0).Select
Loop
End If
Sheets("feuil1").Select
Next
End Sub
a bientot sur le site car je debute et j'ai encore tout a apprendre!! lol
Private Sub CommandButton1_Click()
Sheets("feuil1").Select
Range("a1").Select
Dim cell
Dim I As Long
Dim Plage As Range
Set Plage = Range("a2:a" & Range("a2").End(xlDown).Row)
For I = Plage.Cells.Count To 1 Step -1
If Plage.Cells(I).Value = 7411 Then
Do While ActiveCell.Value <> ""
Plage.Cells(I).EntireRow.Cut
Sheets("feuil2").Select
cel = ActiveCell.Address
ActiveSheet.Paste
ActiveCell.Offset(3, 0).Select
Loop
End If
Sheets("feuil1").Select
Next
End Sub
a bientot sur le site car je debute et j'ai encore tout a apprendre!! lol
pas grave lol merci quand meme pour les autres reponses.
j'ai d'ailleurs une autres questions stp,dans mon programme actuel je copie la ligne ou se trouve 7411
plage.cells(i).entirerow.cut
mais e voudrais copier la ligne au dessus et celle en dessous en meme temps,j'ai essayé de remplacer par
activecell.offset(-1,1).range(a1,j7).select
apllication.cutcopymode=false
selection.copy
mais le prog bug sur selection copy
aurait tu une idée ou quelqu'un d'autres sinon
merci d'avance
j'ai d'ailleurs une autres questions stp,dans mon programme actuel je copie la ligne ou se trouve 7411
plage.cells(i).entirerow.cut
mais e voudrais copier la ligne au dessus et celle en dessous en meme temps,j'ai essayé de remplacer par
activecell.offset(-1,1).range(a1,j7).select
apllication.cutcopymode=false
selection.copy
mais le prog bug sur selection copy
aurait tu une idée ou quelqu'un d'autres sinon
merci d'avance
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
j'ai modifié en enlevent (a1,j7)mais ca ne marche pas ,j'ai fait quelque recherche mais la je bloque
Private Sub CommandButton1_Click()
Sheets("feuil1").Select
Range("a1").Select
Dim cell
Dim I As Long
Dim Plage As Range
Set Plage = Range("a2:a" & Range("a2").End(xlDown).Row)
For I = Plage.Cells.Count To 1 Step -1
If Plage.Cells(I).Value = 7411 Then
Do While ActiveCell.Value <> ""
activecell.offset(-1,1).range("a,j").select bloque ici
apllication.cutcopymode=false
selection.copy
Sheets("feuil2").Select
cel = ActiveCell.Address
ActiveSheet.Paste
ActiveCell.Offset(3, 0).Select
Loop
End If
Sheets("feuil1").Select
Next
End Sub
Private Sub CommandButton1_Click()
Sheets("feuil1").Select
Range("a1").Select
Dim cell
Dim I As Long
Dim Plage As Range
Set Plage = Range("a2:a" & Range("a2").End(xlDown).Row)
For I = Plage.Cells.Count To 1 Step -1
If Plage.Cells(I).Value = 7411 Then
Do While ActiveCell.Value <> ""
activecell.offset(-1,1).range("a,j").select bloque ici
apllication.cutcopymode=false
selection.copy
Sheets("feuil2").Select
cel = ActiveCell.Address
ActiveSheet.Paste
ActiveCell.Offset(3, 0).Select
Loop
End If
Sheets("feuil1").Select
Next
End Sub
bjr
oui en faite je veux selectionner une plage de cellule(une ligne au dessus une ligne en dessous de 7411 )pour copier coller l'ensemble sur la feuille 2 mais je n'y arrive pas comme ca.a moins de les copier coller une par une mais le programme risque d'etre lourds .
cdlt
oui en faite je veux selectionner une plage de cellule(une ligne au dessus une ligne en dessous de 7411 )pour copier coller l'ensemble sur la feuille 2 mais je n'y arrive pas comme ca.a moins de les copier coller une par une mais le programme risque d'etre lourds .
cdlt
a ok c'est pour ca qu'il me copier 7 lignes je ne savais pas
bon maintenant comme ca j'arrive a trouver 7411 et a copier la ligne au dessus, la ligne trouvé et celle en dessous
mais je dois maintenant ajouté une variable qui saurait se reperer pour le faire a l'endroit trouvé
Private Sub CommandButton1_Click()
Sheets("feuil1").Select
cel = ActiveCell.Address
Dim cell
Dim I As Long
Dim Plage As Range
Set Plage = Range("a2:a" & Range("a2").End(xlDown).Row)
For I = Plage.Cells.Count To 1 Step -1
If Plage.Cells(I).Value = 7411 Then
Do While ActiveCell.Value <> ""
Range("a1:j3").Cut "ici je copie uniquement a1:j7"
Sheets("feuil2").Select
cel = ActiveCell.Address
ActiveSheet.Paste
ActiveCell.Offset(3, 0).Select
Loop
End If
Sheets("feuil1").Select
Next
End Sub
le tableau peut ressembler a cela
7459
7486
7411 12 12 15
7896
7963
7411 15 25
etc
bon maintenant comme ca j'arrive a trouver 7411 et a copier la ligne au dessus, la ligne trouvé et celle en dessous
mais je dois maintenant ajouté une variable qui saurait se reperer pour le faire a l'endroit trouvé
Private Sub CommandButton1_Click()
Sheets("feuil1").Select
cel = ActiveCell.Address
Dim cell
Dim I As Long
Dim Plage As Range
Set Plage = Range("a2:a" & Range("a2").End(xlDown).Row)
For I = Plage.Cells.Count To 1 Step -1
If Plage.Cells(I).Value = 7411 Then
Do While ActiveCell.Value <> ""
Range("a1:j3").Cut "ici je copie uniquement a1:j7"
Sheets("feuil2").Select
cel = ActiveCell.Address
ActiveSheet.Paste
ActiveCell.Offset(3, 0).Select
Loop
End If
Sheets("feuil1").Select
Next
End Sub
le tableau peut ressembler a cela
7459
7486
7411 12 12 15
7896
7963
7411 15 25
etc
lol je ne comprends pas ça :
mais je dois maintenant ajouté une variable qui saurait se reperer pour le faire a l'endroit trouvé
mais je dois maintenant ajouté une variable qui saurait se reperer pour le faire a l'endroit trouvé
oui je me suis peut etre mal exprimé,je voudrais pouvoir copier les 3 lignes lorsque je trouve 7411 mais en faisant comme je fait actuellement dans mon prog c ame copie les 3 premieres ligne de la feuille 1
c'est ^pour cela que je voudrais savoir si c'est possible d'ajouter une variable
tel que range("A:J").select
ou alors dit moi si je suis a coté de la plaque lol,il ne me reste que ca a regler et mon prog et fini
cdlt
c'est ^pour cela que je voudrais savoir si c'est possible d'ajouter une variable
tel que range("A:J").select
ou alors dit moi si je suis a coté de la plaque lol,il ne me reste que ca a regler et mon prog et fini
cdlt
c bon tout est arrangé,ca marche
merci pour tout
ps;voila le résultat
Private Sub CommandButton1_Click()
Sheets("feuil1").Select
Range("a1").Select
Dim cell
Dim I As Long
Dim Plage As Range
Set Plage = Range("a2:a" & Range("a2").End(xlDown).Row)
For I = Plage.Cells.Count To 1 Step -1
If Plage.Cells(I).Value = 7411 Then
Do While ActiveCell.Value <> ""
Plage.Cells(I).Offset(-1, 0).Range("a1:j3").Cut
Sheets("feuil2").Select
cel = ActiveCell.Address
ActiveSheet.Paste
ActiveCell.Offset(3, 0).Select
Loop
End If
Sheets("feuil1").Select
Next
End Sub
si ca peut aider quelqu'un desormais !!
merci pour tout
ps;voila le résultat
Private Sub CommandButton1_Click()
Sheets("feuil1").Select
Range("a1").Select
Dim cell
Dim I As Long
Dim Plage As Range
Set Plage = Range("a2:a" & Range("a2").End(xlDown).Row)
For I = Plage.Cells.Count To 1 Step -1
If Plage.Cells(I).Value = 7411 Then
Do While ActiveCell.Value <> ""
Plage.Cells(I).Offset(-1, 0).Range("a1:j3").Cut
Sheets("feuil2").Select
cel = ActiveCell.Address
ActiveSheet.Paste
ActiveCell.Offset(3, 0).Select
Loop
End If
Sheets("feuil1").Select
Next
End Sub
si ca peut aider quelqu'un desormais !!
j'ai trouvé ce moyen qui semble marcher mais j'ai un nouveau souci avec ma boucle.
je souhaite coller et descendre de 3 ligne pour y coller la valeur suivante et ainsi de suite mais la ma boucle colle ,descend de 3 ligne mais reviens au popint de depart et colle par dessus.
aurait tu une idée ?
d'avance merci j'ai commencé depuis moins d'une semaine et je ne maitrise pas grand chose
Range("a1").Select
ActiveCell.Offset(1, 0).Range("a1").Select
Dim I As Long
Dim Plage As Range
Set Plage = Range("a2:a" & Range("a2").End(xlDown).Row)
For I = Plage.Cells.Count To 1 Step -1
If Plage.Cells(I).Value = 7411 Then
Do While ActiveCell.Value <> ""
Plage.Cells(I).EntireRow.Cut
Range("a10").Select
ActiveSheet.Paste
Range("a13").Select
Loop
End If
MsgBox ("ok")
Next
End Sub