VBA problème de macro sur excel
Résolu/Fermé
doudouloeb
Messages postés
10
Date d'inscription
vendredi 19 octobre 2007
Statut
Membre
Dernière intervention
7 juin 2008
-
19 oct. 2007 à 12:57
doudouloeb Messages postés 10 Date d'inscription vendredi 19 octobre 2007 Statut Membre Dernière intervention 7 juin 2008 - 24 oct. 2007 à 10:09
doudouloeb Messages postés 10 Date d'inscription vendredi 19 octobre 2007 Statut Membre Dernière intervention 7 juin 2008 - 24 oct. 2007 à 10:09
A voir également:
- VBA problème de macro sur excel
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Comment calculer la moyenne sur excel - Guide
- Trier sur excel - Guide
- Word et excel gratuit - Guide
13 réponses
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 718
19 oct. 2007 à 18:43
19 oct. 2007 à 18:43
bonjour
Lorsque tu supprime des lignes il est préférable de procéder à l'envers, car la suppression change le nombre existant :
For u = Range("C65536").End(xlUp).Row To 1 step -1
If Cells(u, 3).Value <> 581 Then Rows(u).Delete
Next u
Lorsque tu supprime des lignes il est préférable de procéder à l'envers, car la suppression change le nombre existant :
For u = Range("C65536").End(xlUp).Row To 1 step -1
If Cells(u, 3).Value <> 581 Then Rows(u).Delete
Next u
doudouloeb
Messages postés
10
Date d'inscription
vendredi 19 octobre 2007
Statut
Membre
Dernière intervention
7 juin 2008
22 oct. 2007 à 09:05
22 oct. 2007 à 09:05
Salut,
Jte remercie ça marche nickel, mais je voudrais faire arêter la suppression avant la ligne 4, Comment puis-je faire ?
Sub Nettoyage()
Dim u As Integer
Dim i As Integer
' Première suppression
For u = Range("P65536").End(xlUp).Row To 1 Step -1
If Cells(u, 16) <> Empty Then Rows(u).Delete
Next u
'Seconde suppression
For i = Range("B65536").End(xlUp).Row To 1 Step -1
If Cells(i, 2) <> "58411" Then Rows(i).Delete
Next i
End Sub
Sinon une autre petite question si pour la seconde suppression je veux supprimer toutes les lignes sauf celles qui comporte "58411" et "58412", Comment puis-je faire avec un or ou and... etc??
Merci d'avance
Doudou
Jte remercie ça marche nickel, mais je voudrais faire arêter la suppression avant la ligne 4, Comment puis-je faire ?
Sub Nettoyage()
Dim u As Integer
Dim i As Integer
' Première suppression
For u = Range("P65536").End(xlUp).Row To 1 Step -1
If Cells(u, 16) <> Empty Then Rows(u).Delete
Next u
'Seconde suppression
For i = Range("B65536").End(xlUp).Row To 1 Step -1
If Cells(i, 2) <> "58411" Then Rows(i).Delete
Next i
End Sub
Sinon une autre petite question si pour la seconde suppression je veux supprimer toutes les lignes sauf celles qui comporte "58411" et "58412", Comment puis-je faire avec un or ou and... etc??
Merci d'avance
Doudou
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 718
22 oct. 2007 à 09:16
22 oct. 2007 à 09:16
bonjour
je voudrais faire arêter la suppression avant la ligne 4
Lorsque tu utilises une boucle avec for / next, tu commence et tu finis à la valeur que tu choisis.
Sinon une autre petite question si pour la seconde suppression je veux supprimer toutes les lignes sauf celles qui comporte "58411" et "58412", Comment puis-je faire avec un or ou and... etc??
je voudrais faire arêter la suppression avant la ligne 4
For u = Range("P65536").End(xlUp).Row To 4 Step -1 For i = Range("B65536").End(xlUp).Row To 4 Step -1
Lorsque tu utilises une boucle avec for / next, tu commence et tu finis à la valeur que tu choisis.
Sinon une autre petite question si pour la seconde suppression je veux supprimer toutes les lignes sauf celles qui comporte "58411" et "58412", Comment puis-je faire avec un or ou and... etc??
If Cells(i, 2) <> "58411" And Cells(i, 2) <> "58412" Then Rows(i).Delete
doudouloeb
Messages postés
10
Date d'inscription
vendredi 19 octobre 2007
Statut
Membre
Dernière intervention
7 juin 2008
22 oct. 2007 à 14:45
22 oct. 2007 à 14:45
Salut,
Merci, cela marçhe nickel.
Je voudrais savoir,
j'ai dans une colonne d'un workbook (n°1) des noms que je voudrais comparer avec les données d'autres colonnes dans un autre workbook (n°2),
si je trouve le même nom dans cette plage
je voudrais copier la ligne où j'ai trouver le même nom et la coller dans mon autre workbook (n°1).
Voilà je sais pas si tu sais faire cela où du moin si tu a des idées pour faire ça,
Je suis un peu perdu
Merci bien tjs zen
Merci, cela marçhe nickel.
Je voudrais savoir,
j'ai dans une colonne d'un workbook (n°1) des noms que je voudrais comparer avec les données d'autres colonnes dans un autre workbook (n°2),
si je trouve le même nom dans cette plage
je voudrais copier la ligne où j'ai trouver le même nom et la coller dans mon autre workbook (n°1).
Voilà je sais pas si tu sais faire cela où du moin si tu a des idées pour faire ça,
Je suis un peu perdu
Merci bien tjs zen
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 718
22 oct. 2007 à 19:05
22 oct. 2007 à 19:05
bonjour
C'est tout à fait possible, j'ai un classeur avec une macro qui fait cela, je le cherche et je te donnes les éléments.
C'est tout à fait possible, j'ai un classeur avec une macro qui fait cela, je le cherche et je te donnes les éléments.
doudouloeb
Messages postés
10
Date d'inscription
vendredi 19 octobre 2007
Statut
Membre
Dernière intervention
7 juin 2008
23 oct. 2007 à 09:06
23 oct. 2007 à 09:06
Merci, je l'attends avec impatience
Doudou
Doudou
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 718
23 oct. 2007 à 10:13
23 oct. 2007 à 10:13
bonjour
Quelques questions supplémentaires tout de même.
je voudrais copier la ligne où j'ai trouver le même nom et la coller dans mon autre workbook (n°1).
Tu copie toute la ligne, qui n'a pas la même structure ou simplement certaines colonnes ?
La ligne copiée se place à la suite du nom trouvé ou en fin ?
Quelques questions supplémentaires tout de même.
je voudrais copier la ligne où j'ai trouver le même nom et la coller dans mon autre workbook (n°1).
Tu copie toute la ligne, qui n'a pas la même structure ou simplement certaines colonnes ?
La ligne copiée se place à la suite du nom trouvé ou en fin ?
doudouloeb
Messages postés
10
Date d'inscription
vendredi 19 octobre 2007
Statut
Membre
Dernière intervention
7 juin 2008
23 oct. 2007 à 10:42
23 oct. 2007 à 10:42
En fait, certaines cellules de cette ligne, les 5 premières cellules exactement.
J'essayé en utilisant la fonction RECHERCHEV dans excel mais ça ne fonctionne pas.
DouDou
J'essayé en utilisant la fonction RECHERCHEV dans excel mais ça ne fonctionne pas.
DouDou
doudouloeb
Messages postés
10
Date d'inscription
vendredi 19 octobre 2007
Statut
Membre
Dernière intervention
7 juin 2008
23 oct. 2007 à 14:48
23 oct. 2007 à 14:48
Je sais pas si j'ai été très clair donc je t'envoi avec un tableau exemple.
Voilà j'ai des "N° de Réf" dans ma première colonne, je souhaite les recherher dans les colonnes (N°AP1, N°AP2,N°AP3) du deuxième tableau et copier "l'adresse", "le cp", "la ville" de la ligne où je le retrouve , à coté de mon "N° de Réf".
N° Ref Adress CP ville N°AP 1 N° AP 2 N° AP 3
12rd ffgfdgf 78520 PARIS 56ok 57ok
58tg gfgfdg 56288 LYON 12rd 14rd 15rd
56ok yuyi 45000 etc.. 18un
18un ikliuyuy etc… ag15 ag18
ag15 u,uy,yu 58tg
ag18 ,,uyil ud10
14rd ioiur
15rd tyutyuy
57ok tyuyui
ud10 iiuyu
etc... gfdgfdtt
reytrrytr
uiuyuyi
etc..
Voilà je sais pas si je suis clair mais si ty arrive tu me sauverai la vie.
Merci
Voilà j'ai des "N° de Réf" dans ma première colonne, je souhaite les recherher dans les colonnes (N°AP1, N°AP2,N°AP3) du deuxième tableau et copier "l'adresse", "le cp", "la ville" de la ligne où je le retrouve , à coté de mon "N° de Réf".
N° Ref Adress CP ville N°AP 1 N° AP 2 N° AP 3
12rd ffgfdgf 78520 PARIS 56ok 57ok
58tg gfgfdg 56288 LYON 12rd 14rd 15rd
56ok yuyi 45000 etc.. 18un
18un ikliuyuy etc… ag15 ag18
ag15 u,uy,yu 58tg
ag18 ,,uyil ud10
14rd ioiur
15rd tyutyuy
57ok tyuyui
ud10 iiuyu
etc... gfdgfdtt
reytrrytr
uiuyuyi
etc..
Voilà je sais pas si je suis clair mais si ty arrive tu me sauverai la vie.
Merci
doudouloeb
Messages postés
10
Date d'inscription
vendredi 19 octobre 2007
Statut
Membre
Dernière intervention
7 juin 2008
23 oct. 2007 à 14:51
23 oct. 2007 à 14:51
e
doudouloeb
Messages postés
10
Date d'inscription
vendredi 19 octobre 2007
Statut
Membre
Dernière intervention
7 juin 2008
23 oct. 2007 à 15:09
23 oct. 2007 à 15:09
J'ai déja fait çà mais ça ne marche pas :
Sub essai()
Dim Plage As Range, c As Range
Dim u As Integer
Set Plage = Range("AA:AV")
For u = Range("G65536").End(xlUp).Row To 5 Step -1
V1 = Cells(u, 7)
For Each c In Plage
If c = V1 Then
Cells("AA,c:Af,c").Select
Selection.Copy
Cells(u, 1).Select
ActiveCell.Paste
End If
Next c
Next u
End Sub
Sub essai()
Dim Plage As Range, c As Range
Dim u As Integer
Set Plage = Range("AA:AV")
For u = Range("G65536").End(xlUp).Row To 5 Step -1
V1 = Cells(u, 7)
For Each c In Plage
If c = V1 Then
Cells("AA,c:Af,c").Select
Selection.Copy
Cells(u, 1).Select
ActiveCell.Paste
End If
Next c
Next u
End Sub
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 718
23 oct. 2007 à 18:41
23 oct. 2007 à 18:41
bonjour
Voilà j'ai des "N° de Réf" dans ma première colonne, je souhaite les recherher dans les colonnes (N°AP1, N°AP2,N°AP3) du deuxième tableau et copier "l'adresse", "le cp", "la ville" de la ligne où je le retrouve , à coté de mon "N° de Réf".
et si tu trouves plusieurs fois la référence, la dernière trouvée est la bonne ?
Voilà j'ai des "N° de Réf" dans ma première colonne, je souhaite les recherher dans les colonnes (N°AP1, N°AP2,N°AP3) du deuxième tableau et copier "l'adresse", "le cp", "la ville" de la ligne où je le retrouve , à coté de mon "N° de Réf".
et si tu trouves plusieurs fois la référence, la dernière trouvée est la bonne ?
doudouloeb
Messages postés
10
Date d'inscription
vendredi 19 octobre 2007
Statut
Membre
Dernière intervention
7 juin 2008
24 oct. 2007 à 10:09
24 oct. 2007 à 10:09
Salut j'ai réussi à faire un autre programme, il ne marche pas à cause du For u = Range("F65536").End(xlUp).Row To 5 Step -1, par contre il marche quand je mets For u = 5 To 1000,
mais moi je ne veux pas ca, je veux qui s'arrête quand il n'y a plus de n° de ref.
Voilà la macro:
Sub ed ()
Dim r As Integer
Dim t As Integer
For r = 5 To 1000
variable1 = Cells(r, 7)
For t = 5 To 1000
variable2 = Cells(t, 32)
variable3 = Cells(t, 33)
variable4 = Cells(t, 34)
variable5 = Cells(t, 35)
variable6 = Cells(t, 36)
variable7 = Cells(t, 37)
variable8 = Cells(t, 38)
variable9 = Cells(t, 39)
variable10 = Cells(t, 40)
variable11 = Cells(t, 41)
variable12 = Cells(t, 42)
variable13 = Cells(t, 43)
variable14 = Cells(t, 44)
variable15 = Cells(t, 45)
variable16 = Cells(t, 46)
variable17 = Cells(t, 47)
If variable1 = variable2 Then
Range("AA" & t & ":AF" & t).Select
Selection.Copy
Range("A" & r & ":F" & r).Select
ActiveSheet.Paste
ElseIf variable1 = variable3 Then
Range("AA" & t & ":AF" & t).Select
Selection.Copy
Range("A" & r & ":F" & r).Select
ActiveSheet.Paste
ElseIf variable1 = variable4 Then
Range("AA" & t & ":AF" & t).Select
Selection.Copy
Range("A" & r & ":F" & r).Select
ActiveSheet.Paste
ElseIf variable1 = variable5 Then
Range("AA" & t & ":AF" & t).Select
Selection.Copy
Range("A" & r & ":F" & r).Select
ActiveSheet.Paste
ElseIf variable1 = variable6 Then
Range("AA" & t & ":AF" & t).Select
Selection.Copy
Range("A" & r & ":F" & r).Select
ActiveSheet.Paste
ElseIf variable1 = variable7 Then
Range("AA" & t & ":AF" & t).Select
Selection.Copy
Range("A" & r & ":F" & r).Select
ActiveSheet.Paste
ElseIf variable1 = variable8 Then
Range("AA" & t & ":AF" & t).Select
Selection.Copy
Range("A" & r & ":F" & r).Select
ActiveSheet.Paste
ElseIf variable1 = variable9 Then
Range("AA" & t & ":AF" & t).Select
Selection.Copy
Range("A" & r & ":F" & r).Select
ActiveSheet.Paste
ElseIf variable1 = variable10 Then
Range("AA" & t & ":AF" & t).Select
Selection.Copy
Range("A" & r & ":F" & r).Select
ActiveSheet.Paste
ElseIf variable1 = variable11 Then
Range("AA" & t & ":AF" & t).Select
Selection.Copy
Range("A" & r & ":F" & r).Select
ActiveSheet.Paste
ElseIf variable1 = variable12 Then
Range("AA" & t & ":AF" & t).Select
Selection.Copy
Range("A" & r & ":F" & r).Select
ActiveSheet.Paste
ElseIf variable1 = variable13 Then
Range("AA" & t & ":AF" & t).Select
Selection.Copy
Range("A" & r & ":F" & r).Select
ActiveSheet.Paste
ElseIf variable1 = variable14 Then
Range("AA" & t & ":AF" & t).Select
Selection.Copy
Range("A" & r & ":F" & r).Select
ActiveSheet.Paste
ElseIf variable1 = variable15 Then
Range("AA" & t & ":AF" & t).Select
Selection.Copy
Range("A" & r & ":F" & r).Select
ActiveSheet.Paste
ElseIf variable1 = variable16 Then
Range("AA" & t & ":AF" & t).Select
Selection.Copy
Range("A" & r & ":F" & r).Select
ActiveSheet.Paste
ElseIf variable1 = variable17 Then
Range("AA" & t & ":AF" & t).Select
Selection.Copy
Range("A" & r & ":F" & r).Select
ActiveSheet.Paste
End If
Next t
Next r
End sub ()
mais moi je ne veux pas ca, je veux qui s'arrête quand il n'y a plus de n° de ref.
Voilà la macro:
Sub ed ()
Dim r As Integer
Dim t As Integer
For r = 5 To 1000
variable1 = Cells(r, 7)
For t = 5 To 1000
variable2 = Cells(t, 32)
variable3 = Cells(t, 33)
variable4 = Cells(t, 34)
variable5 = Cells(t, 35)
variable6 = Cells(t, 36)
variable7 = Cells(t, 37)
variable8 = Cells(t, 38)
variable9 = Cells(t, 39)
variable10 = Cells(t, 40)
variable11 = Cells(t, 41)
variable12 = Cells(t, 42)
variable13 = Cells(t, 43)
variable14 = Cells(t, 44)
variable15 = Cells(t, 45)
variable16 = Cells(t, 46)
variable17 = Cells(t, 47)
If variable1 = variable2 Then
Range("AA" & t & ":AF" & t).Select
Selection.Copy
Range("A" & r & ":F" & r).Select
ActiveSheet.Paste
ElseIf variable1 = variable3 Then
Range("AA" & t & ":AF" & t).Select
Selection.Copy
Range("A" & r & ":F" & r).Select
ActiveSheet.Paste
ElseIf variable1 = variable4 Then
Range("AA" & t & ":AF" & t).Select
Selection.Copy
Range("A" & r & ":F" & r).Select
ActiveSheet.Paste
ElseIf variable1 = variable5 Then
Range("AA" & t & ":AF" & t).Select
Selection.Copy
Range("A" & r & ":F" & r).Select
ActiveSheet.Paste
ElseIf variable1 = variable6 Then
Range("AA" & t & ":AF" & t).Select
Selection.Copy
Range("A" & r & ":F" & r).Select
ActiveSheet.Paste
ElseIf variable1 = variable7 Then
Range("AA" & t & ":AF" & t).Select
Selection.Copy
Range("A" & r & ":F" & r).Select
ActiveSheet.Paste
ElseIf variable1 = variable8 Then
Range("AA" & t & ":AF" & t).Select
Selection.Copy
Range("A" & r & ":F" & r).Select
ActiveSheet.Paste
ElseIf variable1 = variable9 Then
Range("AA" & t & ":AF" & t).Select
Selection.Copy
Range("A" & r & ":F" & r).Select
ActiveSheet.Paste
ElseIf variable1 = variable10 Then
Range("AA" & t & ":AF" & t).Select
Selection.Copy
Range("A" & r & ":F" & r).Select
ActiveSheet.Paste
ElseIf variable1 = variable11 Then
Range("AA" & t & ":AF" & t).Select
Selection.Copy
Range("A" & r & ":F" & r).Select
ActiveSheet.Paste
ElseIf variable1 = variable12 Then
Range("AA" & t & ":AF" & t).Select
Selection.Copy
Range("A" & r & ":F" & r).Select
ActiveSheet.Paste
ElseIf variable1 = variable13 Then
Range("AA" & t & ":AF" & t).Select
Selection.Copy
Range("A" & r & ":F" & r).Select
ActiveSheet.Paste
ElseIf variable1 = variable14 Then
Range("AA" & t & ":AF" & t).Select
Selection.Copy
Range("A" & r & ":F" & r).Select
ActiveSheet.Paste
ElseIf variable1 = variable15 Then
Range("AA" & t & ":AF" & t).Select
Selection.Copy
Range("A" & r & ":F" & r).Select
ActiveSheet.Paste
ElseIf variable1 = variable16 Then
Range("AA" & t & ":AF" & t).Select
Selection.Copy
Range("A" & r & ":F" & r).Select
ActiveSheet.Paste
ElseIf variable1 = variable17 Then
Range("AA" & t & ":AF" & t).Select
Selection.Copy
Range("A" & r & ":F" & r).Select
ActiveSheet.Paste
End If
Next t
Next r
End sub ()