Probleme de range , trop de données

bonjour a tous

dans la macros qu'a fait gmb et qui fonctionne bien

Option Explicit

Dim plage, c

Sub Verif()
If MsgBox("Attention vous allez valider la verfication du stock", vbYesNo, "Module de verification") = vbYes Then
Application.ScreenUpdating = False
Sheets("Datalot").Visible = True
Sheets("Datalot").Select
    Set plage = Intersect(ActiveSheet.UsedRange, range("JH:JH,JP:JP,JX:JX,KF:KF,KN:KN,KV:KV,LD:LD,LL:LL,LT:LT,MB:MB,MJ:MJ,MR:MR,MZ:MZ,NH:NH,NP:NP,NX:NX,OF:OF,ON:ON,OV:OV,PD:PD,PL:PL,PT:PT,QB:QB,QJ:QJ,QR:QR,QZ:QZ,RH:RH,RP:RP,RX:RX,SF:SF,SN:SN,SV:SV,TD:TD,TL:TL,TT:TT,UB:UB,UJ:UJ,UR:UR,UZ:UZ,VH:VH,VP:VP,VX:VX,WF:WF,WN:WN,WV:WV,XD:XD,XL:XL,XT:XT,YB:YB,YJ:YJ,YR:YR,YZ:YZ,ZH:ZH,ZP:ZP,L:L,T:T,AB:AB,AJ:AJ,AR:AR,AZ:AZ,BH:BH,BP:BP,BX:BX,CF:CF,CN:CN,CV:CV,DD:DD,DL:DL,DT:DT,EB:EB,EJ:EJ,ER:ER,EZ:EZ,FH:FH,FP:FP,FX:FX,GF:GF,GN:GN,GV:GV,HD:HD,HL:HL,HT:HT,IB:IB,IJ:IJ,IR:IR,IZ:IZ"))
    plage.Select
    For Each c In plage
        If c.Value <> "" And Not c.Value Like "*VERIF FAITE" Then
            c.Value = c.Value & " - VERIF FAITE"
        End If
    Next c
Application.ScreenUpdating = True
Sheets("Datalot").Visible = False
Sheets("Modèle").Select
End If
End Sub

cela fonctionne bien jusqu'à la colonne MJ mais au dela cela ne fonctionne plus car je pense qu'il a trop de sélection

mon but étant de sélectionner 1 colonne sur 8 depuis la colonne L et ce jusqu'à la colonne ZP

quelqu'un aurais t'il amabilité de me dire comment on sélectionne toutes ces colonnes

amicalement

Bonjour teddy13

et pourquoi pas quelque chose comme de ce genre

    ' 276 = n° de la colonne JM
    ' et evidement
    ' 692 = n° de la colonne ZP

    For col = 276 To 692 Step 8
        plage = Cells(1, col).EntireColumn.Select

        ' ****
        ' ici le code For each
        ' ****

    Next

à la place de...

teddy33 a écrit :

Set plage = Intersect(ActiveSheet.UsedRange, range("JH:JH,JP:JP,JX:JX,KF:KF,KN:KN,KV:KV,LD:LD,LL:LL,LT:LT,MB:MB,MJ:MJ,MR:MR,MZ:MZ,NH:NH,NP:NP,NX:NX,OF:OF,ON:ON,OV:OV,PD:PD,PL:PL,PT:PT,QB:QB,QJ:QJ,QR:QR,QZ:QZ,RH:RH,RP:RP,RX:RX,SF:SF,SN:SN,SV:SV,TD:TD,TL:TL,TT:TT,UB:UB,UJ:UJ,UR:UR,UZ:UZ,VH:VH,VP:VP,VX:VX,WF:WF,WN:WN,WV:WV,XD:XD,XL:XL,XT:XT,YB:YB,YJ:YJ,YR:YR,YZ:YZ,ZH:ZH,ZP:ZP,L:L,T:T,AB:AB,AJ:AJ,AR:AR,AZ:AZ,BH:BH,BP:BP,BX:BX,CF:CF,CN:CN,CV:CV,DD:DD,DL:DL,DT:DT,EB:EB,EJ:EJ,ER:ER,EZ:EZ,FH:FH,FP:FP,FX:FX,GF:GF,GN:GN,GV:GV,HD:HD,HL:HL,HT:HT,IB:IB,IJ:IJ,IR:IR,IZ:IZ")) plage.Select

re

désolé mais cela ne fonctionne apparemment pas

amicalement

Bonjour,

peut être que ceci irait :

Set plage = Range("JH:JH,JP:JP,JX:JX,KF:KF,KN:KN,KV:KV,LD:LD,LL:LL,LT:LT,MB:MB,MJ:MJ,MR:MR,MZ:MZ,NH:NH,NP:NP,NX:NX,OF:OF,ON:ON,OV:OV,PD:PD,PL:PL,PT:PT,QB:QB,QJ:QJ,QR:QR,QZ:QZ,RH:RH")

Set plage2 = Range("RP:RP,RX:RX,SF:SF,SN:SN,SV:SV,TD:TD,TL:TL,TT:TT,UB:UB,UJ:UJ,UR:UR,UZ:UZ,VH:VH,VP:VP,VX:VX,WF:WF,WN:WN,WV:WV,XD:XD,XL:XL,XT:XT,YB:YB,YJ:YJ,YR:YR,YZ:YZ,ZH:ZH,ZP:ZP")

Set plage3 = Range("L:L,T:T,AB:AB,AJ:AJ,AR:AR,AZ:AZ,BH:BH,BP:BP,BX:BX,CF:CF,CN:CN,CV:CV,DD:DD,DL:DL,DT:DT,EB:EB,EJ:EJ,ER:ER,EZ:EZ,FH:FH,FP:FP,FX:FX,GF:GF,GN:GN,GV:GV,HD:HD,HL:HL,HT:HT,IB:IB,IJ:IJ,IR:IR,IZ:IZ")

Set tout = Union(plage, plage2, plage3)

re

merci pour tout ce temps passé mais cela ne fonctionne toujours pas

quelle galère lollll

amicalement

Bonjour,

Essaie ainsi :

Option Explicit

Public Sub Verif()
Dim ws As Worksheet
Dim lRow As Long, j As Long
Dim plage As Range, c As Range

    If MsgBox("Attention vous allez valider la verification du stock", vbYesNo, "Module de verification") = vbYes Then

        Application.ScreenUpdating = False
        Set ws = ActiveWorkbook.workshets("Datalot")

        With ws
            .Visible = True
            lRow = .UsedRange.Rows.Count
                For j = 12 To 692 Step 8
                    Set plage = .Range(.Cells(1, j), .Cells(lRow, j))
                    For Each c In plage
                        If c.Value <> vbNullString And Not c.Value Like "*VERIF FAITE" Then
                            c.Value = c.Value & " - VERIF FAITE"
                        End If
                    Next c
                Next j
            .Visible = False
        End With

    End If

    ActiveWorkbook.Worksheets("Modèle").Select

    Set plage = Nothing
    Set ws = Nothing

End Sub

re

merci jean-eric

mais quelques problèmes persiste dans le code je les ai surligné

Option Explicit

Public Sub Verif()
Dim ws As Worksheet
Dim lRow As Long, j As Long
Dim plage As Range, c As Range

    If MsgBox("Attention vous allez valider la verification du stock", vbYesNo, "Module de verification") = vbYes Then

        Application.ScreenUpdating = False
        Set ws = ActiveWorkbook.workshets("Datalot") 'propriété ou méthode non gérer par cet objet

        With ws
            .Visible = True   variable de bloc with non definie
            lRow = .UsedRange.Rows.Count
                For j = 12 To 692 Step 8
                    Set plage = .Range(.Cells(1, j), .Cells(lRow, j))
                    For Each c In plage
                        If c.Value <> vbNullString And Not c.Value Like "*VERIF FAITE" Then
                            c.Value = c.Value & " - VERIF FAITE"
                        End If
                    Next c
                Next j
            .Visible = False
        End With

    End If

la feuille "Datalot est a l'origine une feuille masqué je ne sais pas si cela vient de la

amicalement

teddy33 a écrit :

re

merci pour tout ce temps passé mais cela ne fonctionne toujours pas

quelle galère lollll

amicalement

tu es sur quelle version ?

ici 2007 et ça fonctionne (pour la sélection je dis bien, pas testé plus loin)

re

je suis en version 2010

amicalement

Re,

Rectifie par toi même la ligne :

Set ws = ActiveWorkbook.Worksheets("Datalot") 

re

merci beaucoup jean eric tout fonctionne comme il faut

encore merci et bonne journée

amicalement

Rechercher des sujets similaires à "probleme range trop donnees"