cathodique
XLDnaute Barbatruc
Bonsoir Le Forum,
Afin de saisir mes relevés de mesures, je prépare une feuille excel par macro en récupérant les cordonnées de mes points d’une feuille nommée « coordonnées », puis je transfère ces données sur une autre feuille nommées « BD ».
Mais je voudrai compléter mon code, afin qu’en préparant ma feuille de saisie nommée « relevé », je puisse récupérer de la feuille BD certaines valeurs déjà saisies dans de précédents relevés pour des points communs.
	
	
	
	
	
		
Dans l’entête de la feuille « relevé » figure le nom de l’ouvrage en B2 et sa limite en B3. Les relevés sont effectués par « ligne » et par « tronçon » (appelés « limite »).
En essayant d'être clair, je donne un exemple :
Sur la feuille relevé, les données concernant l’ouvrage (nom en B2=T1) sont saisis en colD et colE, ceux de l’ouvrage voisin (nom en colF=G1) sont en colH et colI. Ils sont archivés en feuille BD respectivement en col I, J, K, M et N.
J’ai déjà saisi et archivé des relevés pour l’ouvrage ‘’G1’’ (01/08/1993), les noms des points communs à 2 ouvrages comportent tous les lettres P et C. Donc pour ces points il y aura Double ou quadruple valeurs (une valeur ou 2 pour chaque ouvrage).(voir feuille BD, lignes en jaune)
En passant à un autre ouvrage par exemple ‘’T1’’, je retrouve en colonne F ‘’G1’’ en correspondance avec le type ‘’PC’’ (colonne C).
Je sais qu’il faut passer par des filtres. Mais je bloque pour effectuer des filtres successifs et surtout pour les arguments des cellules qui contiennent les lettres P et C. et pour récupérer l’adresse exacte où l’on va mettre les données récupérées.
Je ne sais pas trop si j’ai bien exposé mon problème en vous remerciant beaucoup pour votre aide.
Cordialement,
	
		
			
		
		
	
				
			Afin de saisir mes relevés de mesures, je prépare une feuille excel par macro en récupérant les cordonnées de mes points d’une feuille nommée « coordonnées », puis je transfère ces données sur une autre feuille nommées « BD ».
Mais je voudrai compléter mon code, afin qu’en préparant ma feuille de saisie nommée « relevé », je puisse récupérer de la feuille BD certaines valeurs déjà saisies dans de précédents relevés pour des points communs.
		Code:
	
	
	Sub Preparer_New()    'code pour constituer feuille de saisie
Dim ligne As Long, j As Long, k As Long, Lastlig As Long
Dim i As Long
Dim o As Object, bd As Object
Dim Tb, Res()
Dim Dercol As Integer
Dim Val1 As String, Val2 As String
Application.EnableEvents = False
Application.ScreenUpdating = False
Set bd = Sheets("Cordonnées") 'définit l'onglet bd
dl = bd.Cells(Application.Rows.Count, 1).End(xlUp).Row 'définit derlg col1 onglet bd
Set o = Sheets("Relevé")
'Dans la variable tableau Tb
With bd
    Lastlig = .Cells(.Rows.Count, 1).End(xlUp).Row
    Tb = .Range("A2:J" & Lastlig)
End With
 
With o
Dercol = o.Range("A5").End(xlToRight).Column
     Val1 = .Range("B2")        'ouvrage
     Val2 = .Range("B3")        'LIMITE
    For i = 1 To Lastlig - 1
        '
        If Tb(i, 3) = Val1 And Tb(i, 4) = Val2 Then
            j = j + 1
            ReDim Preserve Res(1 To 12, 1 To j)
            Res(1, j) = j
            Res(2, j) = Round(Tb(i, 5), 2)   'PK
            Res(3, j) = Tb(i, 6)    'type
            Res(6, j) = Tb(i, 7)   'OUVRAGE VOISIN
            Res(7, j) = Tb(i, 8)    'PK VOISIN
            Res(12, j) = Tb(i, 9)   'OBSERVATION
            
        End If
        
    Next i
    Lastlig = .Cells(.Rows.Count, 1).End(xlUp).Row
    If Lastlig > 8 Then .Range("A8:L" & Lastlig).Clear
    If j > 0 Then .Range("A8").Resize(j, 12) = Application.Transpose(Res)
    .Range("A8").Resize(j, Dercol).Borders.Weight = xlThin
End With
    
Application.ScreenUpdating = True
Application.EnableEvents = True
End SubEn essayant d'être clair, je donne un exemple :
Sur la feuille relevé, les données concernant l’ouvrage (nom en B2=T1) sont saisis en colD et colE, ceux de l’ouvrage voisin (nom en colF=G1) sont en colH et colI. Ils sont archivés en feuille BD respectivement en col I, J, K, M et N.
J’ai déjà saisi et archivé des relevés pour l’ouvrage ‘’G1’’ (01/08/1993), les noms des points communs à 2 ouvrages comportent tous les lettres P et C. Donc pour ces points il y aura Double ou quadruple valeurs (une valeur ou 2 pour chaque ouvrage).(voir feuille BD, lignes en jaune)
En passant à un autre ouvrage par exemple ‘’T1’’, je retrouve en colonne F ‘’G1’’ en correspondance avec le type ‘’PC’’ (colonne C).
Je sais qu’il faut passer par des filtres. Mais je bloque pour effectuer des filtres successifs et surtout pour les arguments des cellules qui contiennent les lettres P et C. et pour récupérer l’adresse exacte où l’on va mettre les données récupérées.
Je ne sais pas trop si j’ai bien exposé mon problème en vous remerciant beaucoup pour votre aide.
Cordialement,
Pièces jointes
			
				Dernière édition: