Dim lShtSrc As WorkSheet Dim lShtDst As WorkSheet set lShtSrc = Sheets("DATI BASE REP 40") set lShtDst = Sheets("Anagrafica Base 40")
Voici une tentative d'identation.
Sub essai() 'i comme variable du loop principal sur la première feuille 'début du loop principal For i = 4 To 5 'mise à zéro de la variable l l = 0 'loop de recherche dans la seconde feuille (colonne K : descrizione prodotto) For j = 1 To 10 'mise à zéro de la variable fl fl = 0 'controle de la presence de la string recherchée de la colonne E 'sr pour string recherchée sr = Sheets("DATI BASE REP 40").Range("E" & CStr(i)) 'sd pour string de la descrizione prodotto sd = Sheets("Anagrafica Base 40").Range("K" & CStr(j)) Exists = InStr(sb, sr) <> 0 'si la string est présente, j'ajoute un point à la note de fiabilité de la ligne If Exists Then fl = fl + 1 'copier/coller du code pour le controle de la presence de la string recherchée de la colonne F, G, H sr = Sheets("DATI BASE REP 40").Range("F" & CStr(i)) sd = Sheets("Anagrafica Base 40").Range("K" & CStr(j)) Exists = InStr(sb, sr) <> 0 If Exists Then fl = fl + 1 sr = Sheets("DATI BASE REP 40").Range("G" & CStr(i)) sd = Sheets("Anagrafica Base 40").Range("K" & CStr(j)) Exists = InStr(sb, sr) <> 0 If Exists Then fl = fl + 1 sr = Sheets("DATI BASE REP 40").Range("H" & CStr(i)) sd = Sheets("Anagrafica Base 40").Range("K" & CStr(j)) Exists = InStr(sb, sr) <> 0 If Exists Then fl = fl + 1 'maintenant j'ai la note de fiabilité de la ligne étudiée fl 'si elle est supérieur à la note de fiabilité la plus élévé trouvée précedemment 'l (variable de la ligne qui à la meilleur note de fiabilité) prend la valeur de j If fl > f Then l = j Next 'ça loope sur toute la seconde feuille 'maintenant que j'ai trouvé la ligne qui a le plus de fiabilité, 'je copie le code produit Worksheets("Anagrafica Base 40").Select Range("I" & CStr(l)).Select Selection.Copy Worksheets("DATI BASE REP 40").Select Range("B" & CStr(i)).Select ActiveSheet.Paste 'coller de la valeur de la varible j j.Copy Worksheets("DATI BASE REP 40").Select Range("A" & CStr(i)).Select ActiveSheet.Paste 'et je rebloucle sur le loop principal pour étudier une nouvelle ligne. Next End Sub
Option Explicit Sub essai() ' Paramètres Dim i As Long Dim j As Long Dim l As Long Dim fl As Long Dim Exists As Boolean Dim Sr As Worksheet Dim Sd As Worksheet
Exists = InStr(sb, sr) <> 0
Exists = (InStr(Sd, Sr) <> 0)
If fl > f Then l = j
'coller de la valeur de la varible j j.Copy Worksheets("DATI BASE REP 40").Select Range("A" & CStr(i)).Select ActiveSheet.Paste
Worksheets("DATI BASE REP 40").Range("A" & CStr(i)).Value = j
Option Explicit Sub essai() ' Paramètres Dim i As Long Dim j As Long Dim l As Long Dim fl As Long Dim Exists As Boolean Dim Sr As Worksheet Dim Sd As Worksheet ' Boucle de recherche For i = 4 To 5 l = 0 For j = 1 To 10 ' Passage des données fl = 0 Sd = Sheets("Anagrafica Base 40").Range("K" & CStr(j)) ' Recherche dans DATI Sr = Sheets("DATI BASE REP 40").Range("E" & CStr(i)) Exists = (InStr(Sd, Sr) <> 0) ' Test existance de la presence de la string recherchée If Exists Then fl = fl + 1 'si la string est présente, j'ajoute un point à la note de fiabilité de la ligne Sr = Sheets("DATI BASE REP 40").Range("F" & CStr(i)) Exists = (InStr(Sd, Sr) <> 0) If Exists Then fl = fl + 1 Sr = Sheets("DATI BASE REP 40").Range("G" & CStr(i)) Exists = (InStr(Sd, Sr) <> 0) If Exists Then fl = fl + 1 Sr = Sheets("DATI BASE REP 40").Range("H" & CStr(i)) Exists = (InStr(Sd, Sr) <> 0) If Exists Then fl = fl + 1 If fl > f Then l = j ' ??? f n'est pas défini ! Next j 'ça loope sur toute la seconde feuille 'maintenant que j'ai trouvé la ligne qui a le plus de fiabilité, 'je copie le code produit Worksheets("Anagrafica Base 40").Range("I" & CStr(l)).Select Selection.Copy Worksheets("DATI BASE REP 40").Range("B" & CStr(i)).Select ActiveSheet.Paste 'coller de la valeur de la varible j Worksheets("DATI BASE REP 40").Range("A" & CStr(i)).Value = j Next i End Sub
Worksheets("Anagrafica Base 40").Range("I" & CStr(l)).Select Selection.Copy Worksheets("DATI BASE REP 40").Range("B" & CStr(i)).Select ActiveSheet.Paste
Worksheets("Anagrafica Base 40").Range("I" & CStr(l)).Value = Worksheets("DATI BASE REP 40").Range("B" & CStr(i)).Value
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionSub essai() 'i comme variable du loop principal sur la première feuille 'début du loop principal For i = 4 To 5 'mise à zéro de la variable l l = 0 'loop de recherche dans la seconde feuille (colonne K : descrizione prodotto) For j = 1 To 10 'mise à zéro de la variable fl fl = 0 'controle de la presence de la string recherchée de la colonne E 'sr pour string recherchée sr = Sheets("DATI BASE REP 40").Range("E" & CStr(i)) 'sd pour string de la descrizione prodotto sd = Sheets("Anagrafica Base 40").Range("K" & CStr(j)) exists = InStr(sb, sr) <> 0 'si la string est présente, j'ajoute un point à la note de fiabilité de la ligne If exists Then fl = fl + 1 'copier/coller du code pour le controle de la presence de la string recherchée de la colonne F, G, H sr = Sheets("DATI BASE REP 40").Range("F" & CStr(i)) sd = Sheets("Anagrafica Base 40").Range("K" & CStr(j)) exists = InStr(sb, sr) <> 0 If exists Then fl = fl + 1 sr = Sheets("DATI BASE REP 40").Range("G" & CStr(i)) sd = Sheets("Anagrafica Base 40").Range("K" & CStr(j)) exists = InStr(sb, sr) <> 0 If exists Then fl = fl + 1 sr = Sheets("DATI BASE REP 40").Range("H" & CStr(i)) sd = Sheets("Anagrafica Base 40").Range("K" & CStr(j)) exists = InStr(sb, sr) <> 0 If exists Then fl = fl + 1 'maintenant j'ai la note de fiabilité de la ligne étudiée fl 'si elle est supérieur à la note de fiabilité la plus élévé trouvée précedemment 'l (variable de la ligne qui à la meilleur note de fiabilité) prend la valeur de j If fl > f Then l = j Next 'ça loope sur toute la feuille 'maintenant que j'ai trouvé la ligne qui a le plus de fiabilité, 'je copie le code produit Worksheets("Anagrafica Base 40").Select Range("I" & CStr(l)).Select Selection.Copy Worksheets("DATI BASE REP 40").Select Range("B" & CStr(i)).Select ActiveSheet.Paste 'coller de la valeur de la varible j j.Copy Worksheets("DATI BASE REP 40").Select Range("A" & CStr(i)).Select ActiveSheet.Paste 'et je rebloucle sur le loop principal pour étudier une nouvelle ligne. Next End Sub
Sub essai() 'i comme variable du loop principal sur la première feuille 'début du loop principal For i = 4 To 5 'mise à zéro de la variable l l = 0 'loop de recherche dans la seconde feuille (colonne K : descrizione prodotto) For j = 1 To 10 'mise à zéro de la variable fl fl = 0 'controle de la presence de la string recherchée de la colonne E 'sr pour string recherchée sr = Sheets("DATI BASE REP 40").Range("E" & CStr(i)) 'sd pour string de la descrizione prodotto sd = Sheets("Anagrafica Base 40").Range("K" & CStr(j)) exists = InStr(sb, sr) <> 0 'si la string est présente, j'ajoute un point à la note de fiabilité de la ligne If exists Then fl = fl + 1 'copier/coller du code pour le controle de la presence de la string recherchée de la colonne F, G, H sr = Sheets("DATI BASE REP 40").Range("F" & CStr(i)) sd = Sheets("Anagrafica Base 40").Range("K" & CStr(j)) exists = InStr(sb, sr) <> 0 If exists Then fl = fl + 1 sr = Sheets("DATI BASE REP 40").Range("G" & CStr(i)) sd = Sheets("Anagrafica Base 40").Range("K" & CStr(j)) exists = InStr(sb, sr) <> 0 If exists Then fl = fl + 1 sr = Sheets("DATI BASE REP 40").Range("H" & CStr(i)) sd = Sheets("Anagrafica Base 40").Range("K" & CStr(j)) exists = InStr(sb, sr) <> 0 If exists Then fl = fl + 1 'maintenant j'ai la note de fiabilité de la ligne étudiée fl 'si elle est supérieur à la note de fiabilité la plus élévé trouvée précedemment 'l (variable de la ligne qui à la meilleur note de fiabilité) prend la valeur de j If fl > f Then l = j Next 'ça loope sur toute la seconde feuille 'maintenant que j'ai trouvé la ligne qui a le plus de fiabilité, 'je copie le code produit Worksheets("Anagrafica Base 40").Select Range("I" & CStr(l)).Select Selection.Copy Worksheets("DATI BASE REP 40").Select Range("B" & CStr(i)).Select ActiveSheet.Paste 'coller de la valeur de la varible j j.Copy Worksheets("DATI BASE REP 40").Select Range("A" & CStr(i)).Select ActiveSheet.Paste 'et je rebloucle sur le loop principal pour étudier une nouvelle ligne. Next End Sub
Sub essai() ' Paramètres Dim i As Long Dim j As Long Dim l As Long Dim fl As Long Dim f As Long Dim Exists As Boolean Dim sd As String Dim sr As String ' Boucle de recherche For i = 355 To 1500 f = 0 l = 0 For j = 2 To 1271 ' Passage des données fl = 0 sd = Sheets("Anagrafica Base 40").Range("K" & CStr(j)) ' Recherche dans DATI sr = Sheets("DATI BASE REP 40").Range("E" & CStr(i)) Exists = (InStr(sd, sr) <> 0) ' Test existance de la presence de la string recherchée If Exists Then fl = fl + 1 'si la string est présente, j'ajoute un point à la note de fiabilité de la ligne sr = Sheets("DATI BASE REP 40").Range("F" & CStr(i)) Exists = (InStr(sd, sr) <> 0) If Exists Then fl = fl + 1 sr = Sheets("DATI BASE REP 40").Range("G" & CStr(i)) Exists = (InStr(sd, sr) <> 0) If Exists Then fl = fl + 1 sr = Sheets("DATI BASE REP 40").Range("H" & CStr(i)) Exists = (InStr(sd, sr) <> 0) If Exists Then fl = fl + 1 If fl > f Then l = j If fl > f Then f = fl Next j 'ça loope sur toute la seconde feuille 'maintenant que j'ai trouvé la ligne qui a le plus de fiabilité, 'je copie le code produit et coller de la valeur de la varible j If l <> 0 Then Worksheets("DATI BASE REP 40").Range("B" & CStr(i)).Value = Worksheets("Anagrafica Base 40").Range("I" & CStr(l)).Value If l <> 0 Then Worksheets("DATI BASE REP 40").Range("A" & CStr(i)).Value = f If l 0 Then Worksheets("DATI BASE REP 40").Range("B" & CStr(i)).Value "Not found" Next i End Sub
If fl > f Then l = j If fl > f Then f = fl
If fl > f Then l = j f = fl End If
If l <> 0 Then Worksheets("DATI BASE REP 40").Range("B" & CStr(i)).Value = Worksheets("Anagrafica Base 40").Range("I" & CStr(l)).Value If l <> 0 Then Worksheets("DATI BASE REP 40").Range("A" & CStr(i)).Value = f