je souhaite que le code me retourne A+B ( A et B )

VBA_première_fois

XLDnaute Junior
bonjour le forum

voici mon problème
HTML:
For Each cel In Sheets("Feuil1").Range(("A2:A" & Range("A65536").End(xlUp).Row)

cette partie de mon code me permet de faire des operations sur la colonne A
qui peut me dire comment le faire sur les colonnes A et B

c à dire je souhaite que le code me retourne A+B , ou , A et B et j'ai pas su le faire
 

VBA_première_fois

XLDnaute Junior
Re : je souhaite que le code me retourne A+B ( A et B )

bonjour à tous

c'est top ça marche
sinon une derniere question

si je veux , dans mon code , remplacer "classeur2" par classeur ouvert

''''''''
j'aurai un classeur qui contient USF " classeur1"

et un classeur que je vais ouvrir via le bouton parcourir( que je sais faire)

du coup comment préciser quemon bouton doit agir sur ce classeur que je viens d'ouvrir sachant que sont nom change c a dire que ce n'est pas le même classeur à chaque fois

merci d'avance
 

Pierrot93

XLDnaute Barbatruc
Re : je souhaite que le code me retourne A+B ( A et B )

Re,

tu lui affecte une variable, et modifie comme suit (les lignes en bleu) :
Code:
Private Sub CommandButton1_Click()
Dim [COLOR="Blue"][B]wb As Workbook[/B][/COLOR], c As Range, ws As Worksheet, i As Long
[COLOR="blue"][B]Set wb = Workbooks.Open("C:\MesDocs\Excel\monclasseur.xls")[/B][/COLOR]
For Each c In Range("A2", Range("A65536").End(xlUp))
    For Each ws In [COLOR="blue"][B]wb.Worksheets[/B][/COLOR]
        For i = ws.Range("A65536").End(xlUp).Row To 2 Step -1
            If c.Value = ws.Cells(i, 1).Value Then
                If c.Offset(0, 1).Value = ws.Cells(i, 2).Value Then ws.Rows(i).Delete
            End If
        Next i
    Next ws
Next c
End Sub

@+
 

VBA_première_fois

XLDnaute Junior
Re : je souhaite que le code me retourne A+B ( A et B )

re

pour quoi cette partie de ton code
Code:
Set wb = Workbooks.Open("C:\MesDocs\Excel\monclasseur.xls")

ne marche pas lorsque je mets
Code:
Set wb = Workbooks.Open("C:\MesDocs\Excel\*")

pour donner la possiblité de choisir un classeur

merci

a+
 

VBA_première_fois

XLDnaute Junior
Re : je souhaite que le code me retourne A+B ( A et B )

bonjour forum
bonjour Pierrot93

une dernière petite question
ton code marche très très bien merci , mais je souhaite savoir comment faire si ce que je recherche ne se trouve pas tout le tmps dans la m^me cellule

je m explique ton code
Code:
Private Sub CommandButton1_Click()
Dim wb As Workbook, c As Range, ws As Worksheet, i As Long
Set wb = Workbooks.Open("C:\MesDocs\Excel\monclasseur.xls")
For Each c In Range("A2", Range("A65536").End(xlUp))
    For Each ws In wb.Worksheets
        For i = ws.Range("A65536").End(xlUp).Row To 2 Step -1
            If c.Value = ws.Cells(i, 1).Value Then
                If c.Offset(0, 1).Value = ws.Cells(i, 2).Value Then ws.Rows(i).Delete
            End If
        Next i
    Next ws
Next c
End Sub
me permet de récupérer chaque nom et prénom se trouvant respectivement dans la cellule A et B du classeur 1

les cherches dans A et B du classeur 2 puis supprime toute la ligne

j'ai besoin de savoir comment faire pour qu'il me cherche dans tout le document car il ne se trouve pas tout le temps dans A et B
sachant que le prénom et toujours a gauche du nom

merci d'avance
 

Pierrot93

XLDnaute Barbatruc
Re : je souhaite que le code me retourne A+B ( A et B )

Bonjour vba,

essaye ainsi, en supposant la ligne 1 comme ligne de titre sur toutes les feuilles, et l'en-tête de colonne renseigné par "nom"...

Code:
Private Sub CommandButton1_Click()
Dim wb As Workbook, c As Range, ws As Worksheet, i As Long, x As Range
Set wb = Workbooks.Open("C:\MesDocs\Excel\monclasseur.xls")
For Each c In Range("A2", Range("A65536").End(xlUp))
    For Each ws In wb.Worksheets
        Set x = ws.Range("1:1").Find("nom", , xlValues, xlWhole, , , False)
        If Not x Is Nothing Then
            For i = ws.Cells(65536, x.Column).End(xlUp).Row To 2 Step -1
                If c.Value = ws.Cells(i, x.Column).Value Then
                    If c.Offset(0, 1).Value = ws.Cells(i, x.Column + 1).Value Then ws.Rows(i).Delete
                End If
            Next i
        End If
    Next ws
Next c
End Sub

bonne journée
@+
 

VBA_première_fois

XLDnaute Junior
Re : je souhaite que le code me retourne A+B ( A et B )

Bonjour vba,

essaye ainsi, en supposant la ligne 1 comme ligne de titre sur toutes les feuilles, et l'en-tête de colonne renseigné par "nom"...

Code:
Private Sub CommandButton1_Click()
Dim wb As Workbook, c As Range, ws As Worksheet, i As Long, x As Range
Set wb = Workbooks.Open("C:\MesDocs\Excel\monclasseur.xls")
For Each c In Range("A2", Range("A65536").End(xlUp))
    For Each ws In wb.Worksheets
        Set x = ws.Range("1:1").Find("nom", , xlValues, xlWhole, , , False)
        If Not x Is Nothing Then
            For i = ws.Cells(65536, x.Column).End(xlUp).Row To 2 Step -1
                If c.Value = ws.Cells(i, x.Column).Value Then
                    If c.Offset(0, 1).Value = ws.Cells(i, x.Column + 1).Value Then ws.Rows(i).Delete
                End If
            Next i
        End If
    Next ws
Next c
End Sub

bonne journée
@+


pour mieux comprendre car j'ai l'impression que je copie et j'adapte ton code betement je vais te demander de me faciliter un peu la tache

je suppose que, ma recherche ne dépnd pas de A et B mais juste de la colonne A le code sera comment ?

merci d'avance professeur :D
 

Pierrot93

XLDnaute Barbatruc
Re : je souhaite que le code me retourne A+B ( A et B )

Re,

les cherches dans A et B du classeur 2 puis supprime toute la ligne

j'ai besoin de savoir comment faire pour qu'il me cherche dans tout le document car il ne se trouve pas tout le temps dans A et B
sachant que le prénom et toujours a gauche du nom

Avec le dernier code, les colonnes dans lesquelles la recherche est faite, sont déterminés à partir de la ligne 1 qui doit contenir les titres, soit le mot "nom" dans le cas qui nous interresse...

@+
 

Discussions similaires

Réponses
4
Affichages
245
Réponses
12
Affichages
306
Réponses
2
Affichages
206

Statistiques des forums

Discussions
312 845
Messages
2 092 764
Membres
105 529
dernier inscrit
StarExcel