arthur83fr
XLDnaute Nouveau
bonjour,
voila cela fait un petit moment que je butte sur ce bout de code.
quand je l'éxécute il me met msg erreur "erreur de compilation bloc If sans End If" mais j'arrive pas a trouver ou cela coince
pouvez vous m'éclairer ?
merci
description
userform1 = masque de saisie client
entrée du nom, prenom et ville
test pour voir si plusieurs occurences NomPrenomville existe afin de faire du remplissage auto des autres champs de usf1
et c'est la que cela coince et je vois pas ou.
	
	
	
	
	
		
	
		
			
		
		
	
				
			voila cela fait un petit moment que je butte sur ce bout de code.
quand je l'éxécute il me met msg erreur "erreur de compilation bloc If sans End If" mais j'arrive pas a trouver ou cela coince
pouvez vous m'éclairer ?
merci
description
userform1 = masque de saisie client
entrée du nom, prenom et ville
test pour voir si plusieurs occurences NomPrenomville existe afin de faire du remplissage auto des autres champs de usf1
et c'est la que cela coince et je vois pas ou.
		Code:
	
	
	' test de remplissage automatique
' on est dans le usf1
Private Sub TextBox21Ville_AfterUpdate()
'Dim c As Range
'Dim Lig As Long
Dim VarNomPrenomVille As String
Dim VarNomPrenom As String
Dim cDest As Range
Dim LastLig As Long
VarNomPrenomVille = TextBox2Nom.Value + TextBox3Prenom.Value + TextBox21Ville.Value
VarNomPrenom = TextBox2Nom.Value + TextBox3Prenom.Value
 
    'cDest: La celllule de destination: première cellule vide de la colonne A de la feuille DoublonsTemp
    With Worksheets("Doublonstemp")
        Set cDest = .Cells(.Rows.Count, "A").End(xlUp)(2)
    End With
    With Worksheets("Clients")
        'Enlève l'éventuel filtre automatique
        .AutoFilterMode = False
        'LastLig, ligne de la dernière cellule remplie de colonne L de Feuille Clients
        LastLig = .Cells(.Rows.Count, "L").End(xlUp).Row
        'On fait un filtre automatique sur la colonne L de Feuil1 avec comme critère VarNomPrenomVille
        .Range("L1:L" & LastLig).AutoFilter field:=1, Criteria1:=VarNomPrenomVille
        'Si au moins une ligne résultat du filtre (en plus de la ligne 1 des titres)
        If .Range("L1:L" & LastLig).SpecialCells(xlCellTypeVisible).Count > 1 Then
            With .Range("L2:L" & LastLig).SpecialCells(xlCellTypeVisible).EntireRow
                'On copie toutes les lignes visibles vers cDest (sauf la ligne des titres)
                .Copy cDest
       
    End With
           
  ' cela doit etre ici que je teste si plusieurs occurences ou pas
       
        If Sheets("DoublonsTemp").Cells(3.2) <> "" Then
        
            ' je remplis les label Nom, Prenom et ville de usf12
            UserForm12.Label6.Caption = UserForm1.TextBox2Nom.Value
            UserForm12.Label7.Caption = UserForm1.TextBox3Prenom.Value
            UserForm12.Label8.Caption = UserForm1.TextBox21Ville.Value
            
            Dim Derlig As Long
            With Sheets("Doublonstemp")
                ' obtention du numero de la derniere ligne remplie de la colonne F feuille "DoublonsTemp"
                Derlig = .Cells(.Rows.Count, "F").End(xlUp).Row
            End With
    
            UserForm12.ComboBox1.RowSource = "DoublonsTemp!F2:F" & Derlig
                
            ' jaffiche le usf12
            ' afin de choisir adresse dans liste déroulante
            ' le bouton "valider" de usf12 renvoie la valeur de l'adresse dans le usf1
            ' et ferme le usf12
            UserForm12.Show
            
        End If
        
        If Sheets("DoublonsTemp").Cells(3.2) = "" Then
            With Sheets("Clients")
                Dim c As Range
                Dim Lig As Long
                Set c = .Columns(12).Find(VarNomPrenomVille, LookIn:=xlValues, Lookat:=xlWhole)
                If Not c Is Nothing Then
                    Lig = c.Row
                    UserForm1.TextBox18Adresse1 = .Range("F" & Lig)
                    UserForm1.TextBox19Adresse2 = .Range("G" & Lig)
                    UserForm1.TextBox20CodePostal = .Range("H" & Lig)
                    UserForm1.TextBox21Ville = .Range("I" & Lig)
                    UserForm1.TextBox4TelFixe = .Range("D" & Lig)
                    UserForm1.TextBox5TelMobile = .Range("E" & Lig)
                End If
                Set c = Nothing
            End With
        End If
        
        'on vide notre variable cDest
        Set cDest = Nothing
        'On enlève le filtre automatique
        .AutoFilterMode = False
        
  End Sub
	
			
				Dernière édition: