Sortie de boucle...

Juj

XLDnaute Nouveau
Bonjour à toutes et à tous,

Voici le pb qui m'arrache les cheveux depuis qqs jours!
Je split des données. J'insère une ligne sous chacune des lignes où se situent ces données (dans une autre feuille).

Je n'arrive pas à boucler sur la valeur de TabTemp(i) pour me permettre de passer à ma 2ème, 3ème..donnée splitée.

Est-ce que qqn peut m'apporter une solution? Meric d'avance

En pj mon fichier. ds l'onglet essai je sélectionne plusieurs données. dès que je valide par un click droit dans OK étape, mon code s'éxécute

Code:
With Feuil1

TabTemp = Split(ActiveCell.Offset(0, -6), ";")

If UBound(TabTemp) <> -1 Then

For i = 0 To UBound(TabTemp)

For a = .Range("A65536").End(xlUp).Row To .Range("A3").Row Step -1

    If .Cells(a, 1) = TabTemp(i) Then
    MsgBox TabTemp(i)
    Exit For
    ElseIf .Cells(a, 1) <> TabTemp(i) Then
    End If
Next a

If a <> .Range("A2").Row Then
.Range(.Cells(a, 1), .Cells(a, 11)).Copy
.Range(.Cells(a, 1), .Cells(a, 11)).Insert shift:=xlDown

ActiveCell.Offset(0, -12).Copy Destination:=.Cells(a + 1, 5)
ActiveCell.Offset(0, -3).Copy Destination:=.Cells(a + 1, 6)
.Cells(a + 1, 4) = "essai"

.Range(.Cells(a + 1, 7), .Cells(a + 1, 9)).ClearContents
.Cells(a + 1, 4).Interior.ColorIndex = xlNone
End If

Next i
End If
End With
 

Pièces jointes

  • Follow-up _Fabrication_ED.zip
    84.4 KB · Affichages: 24

Juj

XLDnaute Nouveau
Re : Sortie de boucle...

Bonjour kjin,

Voilà un peu plus de détails:
Dans la boucle de variable a, je remonte de cellules en cellules de manière à rencontrer la première valeur égale à la 1ère valeur splitée en question ( TabTemp(i) avec i=0 ). Dès que j'atteind cette valeur je quitte la boucle pour affectuer mon opération d'insertion de ligne. J'en viens ensuite à boucler sur la variable i pour passer à ma seconde valeur splitée et ainsi de suite. je ne comprend pas pourquoi mon Next i ne mène pas à ce que je voudrai...

J'espère que c'est un peu plus clair. je peux compléter si besoin
 

kjin

XLDnaute Barbatruc
Re : Sortie de boucle...

bonjour,
Primo : tu as un expace dans la chaine "191; 192", donc forcément...j'ai ajouté la variable "texte"
deusio : tu quittes la boucle un peu prématurément, bien que je comprenne rien à ce que tu souhaites fairen mais c'est une autre histoire
Code:
Private Sub Worksheet_Beforerightclick(ByVal Target As Range, Cancel As Boolean)
Dim TabTemp, Temp As Variant
Dim i, j, k As Byte
Dim a, b, c As Integer
texte = Replace(ActiveCell.Offset(0, -6), " ", "")
With Feuil1
    TabTemp = Split(texte, ";")
    If UBound(TabTemp) <> -1 Then
        For i = 0 To UBound(TabTemp)
            For a = .Range("A65536").End(xlUp).Row To .Range("A3").Row Step -1
                If .Cells(a, 1) = TabTemp(i) Then
                    MsgBox TabTemp(i)
    '                If a <> .Range("A2").Row Then                                                       'RIEN COMPRIS !
    '                    .Range(.Cells(a, 1), .Cells(a, 11)).Copy
    '                    .Range(.Cells(a, 1), .Cells(a, 11)).Insert shift:=xlDown
    '
    '                    ActiveCell.Offset(0, -12).Copy Destination:=.Cells(a + 1, 5)
    '                    ActiveCell.Offset(0, -3).Copy Destination:=.Cells(a + 1, 6)
    '                    .Cells(a + 1, 4) = "essai"
    '                    .Range(.Cells(a + 1, 7), .Cells(a + 1, 9)).ClearContents
    '                    .Cells(a + 1, 4).Interior.ColorIndex = xlNone
    '                End If
                    Exit For
                End If
            Next a
        Next i
    End If
End With
End Sub
A+
kjin
 

Statistiques des forums

Discussions
312 504
Messages
2 089 087
Membres
104 026
dernier inscrit
bernard58