XL 2010 Une plage avec la fonction cell

SSIAP2

XLDnaute Occasionnel
bonjour à tous

je viens vous demander vos lumières

j'utilise une macro qui compare 3 colonne puis incrément la 3 eme

Code:
Sub Ajout_Auto()
Dim c As Range
Dim s As Range
Dim d As Range
Dim TaValeur As String
Dim TaValeur2 As String

For i = 3 To 34
DL = Sheets("Liste").Cells(34, 1).End(xlUp).Row + 1
TaValeur = Sheets("Dispo").Range("B" & i).Value

Set c = Sheets("Liste").Range("A4:A34").Find(TaValeur, Range("A4"))
If Not c Is Nothing Then
Set c = Nothing
Else
TaValeur2 = TaValeur
Set s = Sheets("Parametre").Range("J2:J34").Find(TaValeur, Range("J2"))
If Not s Is Nothing Then
Sheets("Liste").Cells(DL, 1) = TaValeur
Set s = Nothing
Else
End If
End If
Next i
Retrait_Auto
End Sub

la macro marche plutôt bien mais pour faire evoluer ma macro j'aimerais modifier la ligne
Code:
Set c = Sheets("Liste").Range("A4:A34").Find(TaValeur, Range("A4"))

par un genre de

Code:
Set c = Sheets("Liste").Range(Cells(4, 1), Cells(34, 1)).Find(TaValeur, Cells(4, 1))

le but étant de ne plus avoir les lettre A4:A34 ... pour me permettre de créer une boucle sur d'autre colonne

quelqu'un aurais une petite idée svp merci
 

Pièces jointes

  • exemple.xlsm
    50.4 KB · Affichages: 58
Dernière édition:

jecherche

XLDnaute Occasionnel
Bonjour,

Voici un exemple parmi tant d'autres...
Code:
.......................
Dim Lig As Long
Dim Lig2 As Long
Dim Col As Long

Lig = 4
Lig2 = 34
Col = 1
For i = 3 To 34
DL = Sheets("Liste").Cells(Lig2, Col).End(xlUp).Row + 1
TaValeur = Sheets("Dispo").Range("B" & i).Value

Set c = Sheets("Liste").Range(Cells(Lig, Col), Cells(Lig2, Col)).Find(TaValeur, Cells(Lig, Col))
..................................




Jecherche
 

laurent950

XLDnaute Accro
Bonsoir

VB:
Set c = Sheets("Liste").Range("A4:A34").Find(TaValeur, Range("A4"))
' Sheets("Liste").Cells(4, 1) = cellule A4 de la feuille Liste
Set c = Sheets("Liste").Range(Sheets("Liste").Cells(4, 1), Sheets("Liste").Cells(34, 1)).Find(TaValeur, Sheets("Liste").Cells(4, 1))

Find(TaValeur, Range("A4") = Ici c'est pour qu'elle fonction TabValeur c'est une string et donc je ne comprend pas se que vous mettez en mémoire dans la variable Objet set ?

si non il y a des choses a reprendre pour tous simplifier
 
Dernière édition:

laurent950

XLDnaute Accro
Bonsoir, voila la logique du code, par contre Find je ne comprend pas l'interet ?

' Set c = FListe.Range(FListe.Cells(4, 1), FListe.Cells(34, 1)).Find(TaValeur, FListe.Range(FListe.Cells(4, 1), FListe.Cells(4, 1)))

Si vous pouvez éclairer ma lanterne merci

VB:
Sub Ajout_Auto()
Dim c As Range
Dim s As Range
Dim d As Range
Dim TaValeur As String
Dim TaValeur2 As String

Dim FListe As Worksheet
Set FListe = Worksheets("Liste")
Dim FDispo As Worksheet
Set FDispo = Worksheets("Dispo")
Dim FParametre As Worksheet
Set FParametre = Worksheets("Parametre")

For i = 3 To 34
    DL = FListe.Cells(34, 1).End(xlUp).Row + 1
    TaValeur = FDispo.Cells(i, 2).Value

    Set c = FListe.Range(FListe.Cells(4, 1), FListe.Cells(34, 1)).Find(TaValeur, FListe.Range(FListe.Cells(4, 1), FListe.Cells(4, 1)))
    If Not c Is Nothing Then
    Set c = Nothing
    Else
    TaValeur2 = TaValeur
    Set s = FListe.Range(FListe.Cells(2, 10), FListe.Cells(34, 10)).Find(TaValeur, FListe.Range(FListe.Cells(2, 10), FListe.Cells(2, 10)))
    If Not s Is Nothing Then
    FListe.Cells(DL, 1) = TaValeur
    Set s = Nothing
    Else
    End If
    End If
Next i
Retrait_Auto
End Sub
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 294
Messages
2 086 895
Membres
103 404
dernier inscrit
sultan87