Dadi147
XLDnaute Occasionnel
Bonjour à tous. J'ai déjà été aidé @job75 Mais je dois modifier en raison de la nouvelle conception du fichier
La conception du fichier a été modifiée, je dois donc modifier le code pour extraire la date et le nom de la colonne i
Avec la même condition et la même méthode, existe-t-il un moyen de faire en sorte que le code s'exécute à partir de la première table vide et d'ignorer les tables qui ont été remplies auparavant car il s'exécute lentement lorsqu'il récupère les données
La conception du fichier a été modifiée, je dois donc modifier le code pour extraire la date et le nom de la colonne i
Avec la même condition et la même méthode, existe-t-il un moyen de faire en sorte que le code s'exécute à partir de la première table vide et d'ignorer les tables qui ont été remplies auparavant car il s'exécute lentement lorsqu'il récupère les données
VB:
Sub Remplir_tout()
Dim nmax&, a$(), derlig&, tablo, i&, n&, c As Range, dat$, h&
With Sheets("Sheet1")
'---liste des adresses---
nmax = Application.CountIf(.[E:E], "Restaurant*") 'changé en colonne ("i")
ReDim a(nmax) 'base 0
derlig = .Range("C" & .Rows.Count).End(xlUp).Row + 1 'changé en colonne ("K")
a(nmax) = "E" & derlig 'dernier élément changé en colonne (i")
tablo = .Range("E1:F" & derlig) 'matrice, plus rapide, au moins 2 éléments changé en colonne ("i")
For i = 1 To derlig
If Trim(tablo(i, 1)) Like "Restaurant*" Then a(n) = "E" & i: n = n + 1
Next i
'---remplissage des colonnes A et B
Application.ScreenUpdating = False
.[A:B].ClearContents 'RAZ
.[A:B].HorizontalAlignment = xlCenter 'centrage
For n = 0 To UBound(a) - 1
Set c = .Range(a(n))
dat = Mid(Trim(c(7, 0)), 11, 10)
h = .Range(a(n + 1)).Row - 1 - c(5).Row
If h > 0 Then
If IsDate(dat) Then c(6, -3).Resize(h) = CDate(dat)
c(6, -2).Resize(h) = c(2)
End If
Next n
End With
End Sub