Parcours d'une colonne en vba
pipleton
-
Bidouilleu_R Messages postés 1181 Date d'inscription Statut Membre Dernière intervention -
Bidouilleu_R Messages postés 1181 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je désire parcourir une colonne afin de savoir si ce que contient le champs de mon formulaire est écrit dans une cellule de cette colonne, si c'est le cas je souhaite ajouter 1 à la valeur contenu dans la cellule voisine et sinon ajouter une ligne le contenu du champ et la valeur 1 dans la cellulue adjacente
J'ai bien tenté quelque chose mais sans grand succès,
Je vous remercie par avence de votre aide
Voilà mon code
'on selectionne dans la feuille agence la cellule'
Sheets("agence").Select
'Aller sur la cellule A65536 (soit la dernière de la colonne)'
Range("D65536").Select
'fin vers le haut'
Selection.End(xlUp).Select
'numero de la dernière ligne'
der = ActiveCell.Row - 1
For i = 2 To der + 1
Range("D" & i).Select
CB_agence.AddItem ActiveCell.Value
'si l'agence est déjà crée
If ActiveCell.Value = CB_agence.Text Then
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = ActiveCell.Value + 1
ActiveCell.Offset(0, -1).Select
Else
'sinon on ajoute une ligne
'Selection.EntireRow.Insert
ActiveCell.Offset(1, 0).EntireRow.Insert
ActiveCell.Offset(0, 0).Select
ActiveCell.Value = CB_agence.Text
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = ActiveCell.Value + 1
ActiveCell.Offset(0, -1).Select
End If
Next
Je désire parcourir une colonne afin de savoir si ce que contient le champs de mon formulaire est écrit dans une cellule de cette colonne, si c'est le cas je souhaite ajouter 1 à la valeur contenu dans la cellule voisine et sinon ajouter une ligne le contenu du champ et la valeur 1 dans la cellulue adjacente
J'ai bien tenté quelque chose mais sans grand succès,
Je vous remercie par avence de votre aide
Voilà mon code
'on selectionne dans la feuille agence la cellule'
Sheets("agence").Select
'Aller sur la cellule A65536 (soit la dernière de la colonne)'
Range("D65536").Select
'fin vers le haut'
Selection.End(xlUp).Select
'numero de la dernière ligne'
der = ActiveCell.Row - 1
For i = 2 To der + 1
Range("D" & i).Select
CB_agence.AddItem ActiveCell.Value
'si l'agence est déjà crée
If ActiveCell.Value = CB_agence.Text Then
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = ActiveCell.Value + 1
ActiveCell.Offset(0, -1).Select
Else
'sinon on ajoute une ligne
'Selection.EntireRow.Insert
ActiveCell.Offset(1, 0).EntireRow.Insert
ActiveCell.Offset(0, 0).Select
ActiveCell.Value = CB_agence.Text
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = ActiveCell.Value + 1
ActiveCell.Offset(0, -1).Select
End If
Next
A voir également:
- Parcours d'une colonne en vba
- Déplacer une colonne excel - Guide
- Trier une colonne excel - Guide
- Colonne word - Guide
- Formule somme excel colonne - Guide
- Figer une colonne excel - Guide
1 réponse
Dim C as variant ' je modifie ici
'on selectionne dans la feuille agence la cellule'
Sheets("agence").Select
'Aller sur la cellule A65536 (soit la dernière de la colonne)'
Range("D65536").Select
'fin vers le haut'
Selection.End(xlUp).Select
'numero de la dernière ligne'
der = ActiveCell.Row - 1
for each C in range("D2:D"&der+1) ' je modifie ici : pour chaque cellule dans la plage
' For i = 2 To der + 1 'plus utilisé
' Range("D" & i).Select ' inutile
' CB_agence.AddItem C.value ' je modifie
i'ci tu ajoutes un élément et ensuite tu vérifies qu'il correspond à ta cellule ce qui toujours vrai
' moi je ferai ...
if Cb_agence.value=c.value then
C.Offset(0, 1).value=c.value+1
'si l'agence est déjà crée
'If ActiveCell.Value = CB_agence.Text Then
'ActiveCell.Offset(0, 1).Select
'ActiveCell.Value = ActiveCell.Value + 1
'ActiveCell.Offset(0, -1).Select
Else
'sinon on ajoute une ligne
'Selection.EntireRow.Insert
C.EntireRow.Insert
'ActiveCell.Offset(1, 0).EntireRow.Insert
'ActiveCell.Offset(0, 0).Select
'ActiveCell.Value = CB_agence.Text
'ActiveCell.Offset(0, 1).Select
'ActiveCell.Value = ActiveCell.Value + 1
'ActiveCell.Offset(0, -1).Select
End If
Next
tu testes j'ai un rdv je repasse plus tard
R
'on selectionne dans la feuille agence la cellule'
Sheets("agence").Select
'Aller sur la cellule A65536 (soit la dernière de la colonne)'
Range("D65536").Select
'fin vers le haut'
Selection.End(xlUp).Select
'numero de la dernière ligne'
der = ActiveCell.Row - 1
for each C in range("D2:D"&der+1) ' je modifie ici : pour chaque cellule dans la plage
' For i = 2 To der + 1 'plus utilisé
' Range("D" & i).Select ' inutile
' CB_agence.AddItem C.value ' je modifie
i'ci tu ajoutes un élément et ensuite tu vérifies qu'il correspond à ta cellule ce qui toujours vrai
' moi je ferai ...
if Cb_agence.value=c.value then
C.Offset(0, 1).value=c.value+1
'si l'agence est déjà crée
'If ActiveCell.Value = CB_agence.Text Then
'ActiveCell.Offset(0, 1).Select
'ActiveCell.Value = ActiveCell.Value + 1
'ActiveCell.Offset(0, -1).Select
Else
'sinon on ajoute une ligne
'Selection.EntireRow.Insert
C.EntireRow.Insert
'ActiveCell.Offset(1, 0).EntireRow.Insert
'ActiveCell.Offset(0, 0).Select
'ActiveCell.Value = CB_agence.Text
'ActiveCell.Offset(0, 1).Select
'ActiveCell.Value = ActiveCell.Value + 1
'ActiveCell.Offset(0, -1).Select
End If
Next
tu testes j'ai un rdv je repasse plus tard
R