Comparer cellule avec plage vb
Résolu/Fermé
pgillou
Messages postés
49
Date d'inscription
lundi 23 août 2010
Statut
Membre
Dernière intervention
14 octobre 2010
-
17 sept. 2010 à 08:51
pgillou Messages postés 49 Date d'inscription lundi 23 août 2010 Statut Membre Dernière intervention 14 octobre 2010 - 17 sept. 2010 à 15:59
pgillou Messages postés 49 Date d'inscription lundi 23 août 2010 Statut Membre Dernière intervention 14 octobre 2010 - 17 sept. 2010 à 15:59
A voir également:
- Comparer cellule avec plage vb
- Vb cable - Télécharger - Audio & Musique
- Aller à la ligne dans une cellule excel - Guide
- Vb - Télécharger - Langages
- Verrouiller cellule excel - Guide
- Excel cellule couleur si condition texte - Guide
6 réponses
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
17 sept. 2010 à 10:45
17 sept. 2010 à 10:45
Bonjour
;o)
Dim plage As Range Dim cel St plage = Range("D3:D81") '.... For Each cel In plage If cel.Value = .Cells(Lig, Col).Value Then 'blabla .. End If Next cel '....
;o)
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 303
17 sept. 2010 à 08:57
17 sept. 2010 à 08:57
Bonjour,
Essaies:
Essaies:
if application.countif(range("D3:D80"),cells(lig,col))>0 then
pgillou
Messages postés
49
Date d'inscription
lundi 23 août 2010
Statut
Membre
Dernière intervention
14 octobre 2010
1
17 sept. 2010 à 09:22
17 sept. 2010 à 09:22
Merci pour ta réponse écoute rien ne se passe je te donne le code complet:
Sub REGROUPB()
Dim Lig As Long
Dim Col As String
Dim NbrLig As Long
Dim NumLig As Long
Sheets("REGROUP B").Activate 'feuille de destination
NumLig = 0
Col = "B" ' colonne feuille source à parcourir
NumLig = 0
With Sheets("carnet de dep a") ' feuille source
NbrLig = .Cells(65536, Col).End(xlUp).Row
For Lig = 1 To NbrLig
If Application.CountIf(Range("D3:D81"), Cells(Lig, Col)) Then
.Cells(Lig, Col).EntireRow.Copy
NumLig = NumLig + 1
Cells(NumLig + 127, 2).Select
ActiveSheet.Paste Link:=True
End If
Next
End With
End Sub
Merci de ton aide!
Sub REGROUPB()
Dim Lig As Long
Dim Col As String
Dim NbrLig As Long
Dim NumLig As Long
Sheets("REGROUP B").Activate 'feuille de destination
NumLig = 0
Col = "B" ' colonne feuille source à parcourir
NumLig = 0
With Sheets("carnet de dep a") ' feuille source
NbrLig = .Cells(65536, Col).End(xlUp).Row
For Lig = 1 To NbrLig
If Application.CountIf(Range("D3:D81"), Cells(Lig, Col)) Then
.Cells(Lig, Col).EntireRow.Copy
NumLig = NumLig + 1
Cells(NumLig + 127, 2).Select
ActiveSheet.Paste Link:=True
End If
Next
End With
End Sub
Merci de ton aide!
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 303
17 sept. 2010 à 09:40
17 sept. 2010 à 09:40
Dans ta demande, on ne savait pas que ta ligne était dans with -end with
donc
et d'autre part, j'aurais plutôt mis col=2 que "B" (ce n'est pas obligatoire)
ensuite tu copies une ligne entière
.Cells(Lig, Col).EntireRow.Copy
sur une zone commençant colonne 2...
Cells(NumLig + 127, 2).Select
enfin "numlig" semble inutile, tu pourrais le remplacer par "lig"
donc
If Application.CountIf(.Range("D3:D81"), .Cells(Lig, Col)) Then
et d'autre part, j'aurais plutôt mis col=2 que "B" (ce n'est pas obligatoire)
ensuite tu copies une ligne entière
.Cells(Lig, Col).EntireRow.Copy
sur une zone commençant colonne 2...
Cells(NumLig + 127, 2).Select
enfin "numlig" semble inutile, tu pourrais le remplacer par "lig"
pgillou
Messages postés
49
Date d'inscription
lundi 23 août 2010
Statut
Membre
Dernière intervention
14 octobre 2010
1
17 sept. 2010 à 10:40
17 sept. 2010 à 10:40
Je te remercie ,je teste mais toujours pas de résultat le décalage de colonne est voulu je prend compte de tes remarques.
C'est vraiment cette ligne qui pose problème il faut que je trouve pour l'appliquer à une plage une idée?
If .Cells(Lig, Col).Value = Range("D121").Value Then
Merci
C'est vraiment cette ligne qui pose problème il faut que je trouve pour l'appliquer à une plage une idée?
If .Cells(Lig, Col).Value = Range("D121").Value Then
Merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
pgillou
Messages postés
49
Date d'inscription
lundi 23 août 2010
Statut
Membre
Dernière intervention
14 octobre 2010
1
17 sept. 2010 à 11:44
17 sept. 2010 à 11:44
Salut Polux31
J'ai juste un problème avec St plage marche pas peut tu m'aider?
Merci
J'ai juste un problème avec St plage marche pas peut tu m'aider?
Merci
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
17 sept. 2010 à 11:52
17 sept. 2010 à 11:52
oups autant pour moi ...
Set plage = ....
et faire Set plage = Nothing juste avant le End Sub
;o)
Set plage = ....
et faire Set plage = Nothing juste avant le End Sub
;o)
pgillou
Messages postés
49
Date d'inscription
lundi 23 août 2010
Statut
Membre
Dernière intervention
14 octobre 2010
1
17 sept. 2010 à 13:32
17 sept. 2010 à 13:32
Désolé d'abuser mais ca ne fonctionne pas n'ya til pas une fontion à ton connaissance permettant de dire:
Si .Cells(Lig, Col).Value est égal à une des valeurs de la plage alors copier ligne.
Merci
Si .Cells(Lig, Col).Value est égal à une des valeurs de la plage alors copier ligne.
Merci
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 303
17 sept. 2010 à 14:38
17 sept. 2010 à 14:38
Désolé, la ligne que j'avais eu l'impertinence de te donner fonctionne; mais tu as eu raison de me jeter de cette discussion, je suis trop nul pour toi
pgillou
Messages postés
49
Date d'inscription
lundi 23 août 2010
Statut
Membre
Dernière intervention
14 octobre 2010
1
17 sept. 2010 à 14:54
17 sept. 2010 à 14:54
Houla je ne jette personne je t'ai remercié et te remercie encore pour ton aide et si je fais appel au forum c'est que je n'arrive pas à le faire tout seul. J'essaye juste d'explorer plusieurs soltuions pour arriver au bon résultat.
Donc ne le prend pas mal
Bonne après midi
Donc ne le prend pas mal
Bonne après midi
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
17 sept. 2010 à 15:50
17 sept. 2010 à 15:50
Dire que ça ne fonctionne pas ou "toujours pas de résultats" est un peu court ...
Je n'ai pas pris l'option "don divinatoire" dans mon cursus...
Je t'ai donné une façon différente de michel pour parcourir une plage, à toi de l'adapter.
Tout comme la proposition de michel qui curieusement fonctionne quand elle est bien appliquée.
Je n'ai pas pris l'option "don divinatoire" dans mon cursus...
Je t'ai donné une façon différente de michel pour parcourir une plage, à toi de l'adapter.
Tout comme la proposition de michel qui curieusement fonctionne quand elle est bien appliquée.
pgillou
Messages postés
49
Date d'inscription
lundi 23 août 2010
Statut
Membre
Dernière intervention
14 octobre 2010
1
17 sept. 2010 à 15:59
17 sept. 2010 à 15:59
ça devient un linchage collectif je débute en programmation donc je mais pas mal de temps à adapter le code c'est dans le cadre professionnel donc je n'ai pas tout mon temps non plus donc j'essaye de faire au plus vite. J'ai réussi au final avec ton code Polux31 et aucun moment je n'ai remis en doute vos compétences à tous les deux. Maintenant si vous êtes sentis froissez mes plates escuses.
Merci et bon week end à tous les deux :)
Merci et bon week end à tous les deux :)