Parcourir les colonnes dans une macro excel
Spozithau
-
michel_m Messages postés 18903 Date d'inscription Statut Contributeur Dernière intervention -
michel_m Messages postés 18903 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je souhaites réaliser une macro sous excel mais je suis vraiment novice en la matière et j'ai donc des petits problèmes.
J'ai fait le code suivant en l adaptant d'un code trouvé sur internet qui marche bien :
Sub Macro2()
Dim i As Integer
With ThisWorkbook.Sheets("Feuil2")
For i = 5 To 414
If Range("BC" & i).Value = "X" Then
Range("S" & i).ClearContents
Range("AM" & i).ClearContents
End If
Next i
End With
End Sub
Seulement je souhaiterais maintenant que cette macro s'applique a toutes les colonnes de BC à BQ (et non plus seulement sur BC) en plus de le faire sur toutes les lignes. De plus les action qui s'effectuent dans la boucle if doivent se faire sur des colonne situées respectivement 36 et 16 colonnes en amont de celle qui est en train d'être traitée (d'où le S et le AM dans les range). Avez-vous des conseils ou astuces pour réaliser cette macro ?
Merci du temps que vous me consacrez.
Je souhaites réaliser une macro sous excel mais je suis vraiment novice en la matière et j'ai donc des petits problèmes.
J'ai fait le code suivant en l adaptant d'un code trouvé sur internet qui marche bien :
Sub Macro2()
Dim i As Integer
With ThisWorkbook.Sheets("Feuil2")
For i = 5 To 414
If Range("BC" & i).Value = "X" Then
Range("S" & i).ClearContents
Range("AM" & i).ClearContents
End If
Next i
End With
End Sub
Seulement je souhaiterais maintenant que cette macro s'applique a toutes les colonnes de BC à BQ (et non plus seulement sur BC) en plus de le faire sur toutes les lignes. De plus les action qui s'effectuent dans la boucle if doivent se faire sur des colonne situées respectivement 36 et 16 colonnes en amont de celle qui est en train d'être traitée (d'où le S et le AM dans les range). Avez-vous des conseils ou astuces pour réaliser cette macro ?
Merci du temps que vous me consacrez.
A voir également:
- Parcourir les colonnes dans une macro excel
- Formule moyenne excel plusieurs colonnes - Guide
- Déplacer une colonne excel - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Classer par ordre alphabétique excel plusieurs colonnes - Guide
- Liste déroulante excel - Guide
2 réponses
Bonjour
Ton With sert a quoi
mettre Cells a la place de range
et dans les autre colonne tu efface quoi ??
A+
Maurice
Ton With sert a quoi
mettre Cells a la place de range
et dans les autre colonne tu efface quoi ??
A+
Maurice
Bonjour
essaies ce code
Si tu tu as plus de 1000 ou 2000 lignes , on pouura aller + vite: fais signe
essaies ce code
Option Explicit
'------
Sub report_si()
Dim Lig As Integer, Col As Integer
Dim Nbre As Integer
Application.ScreenUpdating = False 'fige défilement de l'écran
With ThisWorkbook.Sheets(2)
For Col = 55 To 69 '(BC :BQ)
Nbre = Application.CountIf(.Columns(Col), "X")
Lig = 1 'ligne d'ent^te
If Nbre > 0 Then
Lig = .Columns(Col).Find("X", .Cells(Lig, Col), xlValues).Row
.Cells(Lig, Col - 36).ClearContents
.Cells(Lig, Col - 16).ClearContents
End If
Next
End With
End Sub
Si tu tu as plus de 1000 ou 2000 lignes , on pouura aller + vite: fais signe
mais les "range" de feuil2 dans le bloc doivent alors précéder d'un point
.Range("S" & i)