Je débute en VBA sur excel 2002
Quelqu'un pourrait-il m'expliquer comment construire le VBA sur le modèle ci
dessous :
J'ai un fichier avec plusieurs colonnes et je dois récupérer la cellule C(x)
(heure) en comparant la cellule D(x) (Texte) et la cellule F(x) (Texte) de
la même ligne.
Ceci plusieurs fois car mon fichier comporte 200 lignes.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Hervé
Bonsoir Cloclo, Regarde si cela peut faire l'affaire :
Sub RecupValeurs() Dim Plage As Range Dim Cel As Range Dim Tbl() As Date Dim I As Integer 'définie la plage (colonne D) With Worksheets("Feuil1") Set Plage = .Range(.[D1], .[D65536].End(3)) End With 'parcour la plage cellule après cellule For Each Cel In Plage 'si valeur identique, récupération de 'l'heure en colonne C If Cel = Cel.Offset(0, 2) Then I = I + 1 ReDim Preserve Tbl(1 To I) Tbl(I) = Cel.Offset(0, -1) End If Next Cel 'si rien trouvée (tableau non initialisé) On Error Resume Next 'valeurs collées dans la colonne A de la feuille "Feuil2" With Worksheets("Feuil2") .Range(.[A1], .Range("A" & UBound(Tbl))) _ = Application.WorksheetFunction.Transpose(Tbl) End With If Err.Number <> 0 Then MsgBox "Aucune valeurs en doublon dans les colonnes D et F !" Else MsgBox I & " valeur(s) en doublon trouvées dans les colonnes " _ & "D et F !" End If
Set Cel = Nothing Set Plage = Nothing Erase Tbl End Sub
Hervé.
"Cloclo" a écrit dans le message news:
Je débute en VBA sur excel 2002 Quelqu'un pourrait-il m'expliquer comment construire le VBA sur le modèle ci
dessous :
J'ai un fichier avec plusieurs colonnes et je dois récupérer la cellule C(x)
(heure) en comparant la cellule D(x) (Texte) et la cellule F(x) (Texte) de la même ligne. Ceci plusieurs fois car mon fichier comporte 200 lignes.
Merci pour votre réponse
Bonsoir Cloclo,
Regarde si cela peut faire l'affaire :
Sub RecupValeurs()
Dim Plage As Range
Dim Cel As Range
Dim Tbl() As Date
Dim I As Integer
'définie la plage (colonne D)
With Worksheets("Feuil1")
Set Plage = .Range(.[D1], .[D65536].End(3))
End With
'parcour la plage cellule après cellule
For Each Cel In Plage
'si valeur identique, récupération de
'l'heure en colonne C
If Cel = Cel.Offset(0, 2) Then
I = I + 1
ReDim Preserve Tbl(1 To I)
Tbl(I) = Cel.Offset(0, -1)
End If
Next Cel
'si rien trouvée (tableau non initialisé)
On Error Resume Next
'valeurs collées dans la colonne A de la feuille "Feuil2"
With Worksheets("Feuil2")
.Range(.[A1], .Range("A" & UBound(Tbl))) _
= Application.WorksheetFunction.Transpose(Tbl)
End With
If Err.Number <> 0 Then
MsgBox "Aucune valeurs en doublon dans les colonnes D et F !"
Else
MsgBox I & " valeur(s) en doublon trouvées dans les colonnes " _
& "D et F !"
End If
Set Cel = Nothing
Set Plage = Nothing
Erase Tbl
End Sub
Hervé.
"Cloclo" <cloclo08@tele2.fr> a écrit dans le message news:
eIe4oo7iFHA.3448@TK2MSFTNGP12.phx.gbl...
Je débute en VBA sur excel 2002
Quelqu'un pourrait-il m'expliquer comment construire le VBA sur le modèle
ci
dessous :
J'ai un fichier avec plusieurs colonnes et je dois récupérer la cellule
C(x)
(heure) en comparant la cellule D(x) (Texte) et la cellule F(x) (Texte) de
la même ligne.
Ceci plusieurs fois car mon fichier comporte 200 lignes.
Bonsoir Cloclo, Regarde si cela peut faire l'affaire :
Sub RecupValeurs() Dim Plage As Range Dim Cel As Range Dim Tbl() As Date Dim I As Integer 'définie la plage (colonne D) With Worksheets("Feuil1") Set Plage = .Range(.[D1], .[D65536].End(3)) End With 'parcour la plage cellule après cellule For Each Cel In Plage 'si valeur identique, récupération de 'l'heure en colonne C If Cel = Cel.Offset(0, 2) Then I = I + 1 ReDim Preserve Tbl(1 To I) Tbl(I) = Cel.Offset(0, -1) End If Next Cel 'si rien trouvée (tableau non initialisé) On Error Resume Next 'valeurs collées dans la colonne A de la feuille "Feuil2" With Worksheets("Feuil2") .Range(.[A1], .Range("A" & UBound(Tbl))) _ = Application.WorksheetFunction.Transpose(Tbl) End With If Err.Number <> 0 Then MsgBox "Aucune valeurs en doublon dans les colonnes D et F !" Else MsgBox I & " valeur(s) en doublon trouvées dans les colonnes " _ & "D et F !" End If
Set Cel = Nothing Set Plage = Nothing Erase Tbl End Sub
Hervé.
"Cloclo" a écrit dans le message news:
Je débute en VBA sur excel 2002 Quelqu'un pourrait-il m'expliquer comment construire le VBA sur le modèle ci
dessous :
J'ai un fichier avec plusieurs colonnes et je dois récupérer la cellule C(x)
(heure) en comparant la cellule D(x) (Texte) et la cellule F(x) (Texte) de la même ligne. Ceci plusieurs fois car mon fichier comporte 200 lignes.