Problème avec code
Bonjour,
étant nul en VBA, il y a quelques temps (meme années) quelqu'un m'avait fait une macro.
Me servant de ce fichier tous les jours, j'ai fini par le modifié pour plus de simplicité (de copier/coller un mois sur l'autre, et de vide)
Mais seulement, petit hic, la macro fonctionne mais ne reprend plus toutes les données.
Si quelqu'un pouvait m'aider car je suis largué.
Je vous joins le fichier
onglet qui bug est 07 (car j'ai fini par le modifié)
les references qui peuvent vous etre utiles sont les mois précedent pour comprendre.
Par avance je vous remercie
Bonjour,
La taille de ton fichier est inférieure à 1.5 Mo ! ...
Tu n'as donc pas besoin de le compresser.
Depuis la refonte du forum, il y a un nombre important de fichiers compressés inutilement.
Cdlt.
Jean Eric,
le pire c'est que je ne l'ai pas compressé, j'ai joins le fichier via l'icone joindre fichier.
Donc je ne comprend pas
le voici, mais il me le compresse quand même automatiquement ...
Du coup, la je ne comprend pas,
car, de plus, j'avais bien lu que la taille était tout a fait dans les clous
Bon j'ai réussi a retirer le "une colonne sur deux" (le pas de 2)
Par contre, comment puis "inserer" d'autres lettres ou chiffres dans le réglage : ' si la valeur de référence commence par 8
Car il s'avère que LP maintenant on fait des "forcing" avec des 7 ou des 6
Merci par avance
Option Explicit
Function couleur(cellule As Range)
Application.Volatile
couleur = cellule.Interior.ColorIndex
End Function
Sub Mensuel()
Const Site = "https://www.laposte.fr/outils/suivre-vos-envois?code="
Dim i&, j&, L&
Dim TData As Variant, TReport As Variant
Dim Sh As Worksheet
'------------ Valorisation des variables -------------------------------------------------------
'Sh est la feuille active au lancement de la macro
Set Sh = ActiveSheet
'Récupération des donées sur la feuille active.
'De la cellule $B$5 jusqu'a la derniere ligne remplie en colonne B pour la colonne BJ(62)
With Sh
TData = .Range(.Cells(5, 2), .Cells(.Cells(.Rows.Count, 2).End(3).Row, 62))
End With
'Dimentionnement du tableau de réception
'Deux colonnes Référence et date
'Nombre de ligne égal au nombre de colonnes * le nombre de lignes du tableau de données.
'Si tout est rempli, on aura la place
ReDim TReport(1 To UBound(TData, 1) * UBound(TData, 2), 1 To 2) As Variant
'-----------------------------------------------------------------------------------------------
'------------ Traitement------------------------------------------------------------------------
'Pour chaque colonne du tableau de données
For j = LBound(TData, 2) To UBound(TData, 2)
'Pour chaque ligne du tableau de données
For i = LBound(TData, 1) + 1 To UBound(TData, 1)
'Si la valeur de la référence commence par 8
If Left(TData(i, j), 1) = "8" Then
'on incrémente la ligne à utiliser dans le tableau de résultat
L = L + 1
'La valeur ligne L Colonne 1 est la référence
TReport(L, 1) = TData(i, j)
'La valeur ligne L Colonne 2 est la date (ligne 1 du tableau de données, colonne J
TReport(L, 2) = TData(1, j)
End If
'Prochaine ligne de données
Next i
'Prochaine colonne de données
Next j
'-----------------------------------------------------------------------------------------------
'------------ Retitution -----------------------------------------------------------------------
'si L est suppérieure à 0 (s'il y a des résultats)
If L > 0 Then
'On bloque le calcul (la function personalisée est très lente)
Application.Calculation = xlCalculationManual
'On bloque l'affichage (gain de temps)
Application.ScreenUpdating = False
'Avec la feuille active
With Sh
'On restitue les résultats
'On vide les colonnes BL:BN
.Columns("BL:BM").ClearContents
'On rempli l'en-tête
'Ligne 5 colonne BL
.Cells(5, 64).Value = "Référence"
'Ligne 5 colonne BM
.Cells(5, 65).Value = "Date"
'Cellule ligne 6 colonne BL agrandie de L lignes sur deux colonnes on mets le résultat
.Cells(6, 64).Resize(L, 2).FormulaLocal = TReport
'-------------------Mise en place du lien hypertexte sur la feuille----------------------
For i = 1 To L
.Cells(i + 5, 64).Hyperlinks.Add Anchor:=.Cells(i + 5, 64), _
Address:=Site & TReport(i, 1), TextToDisplay:=TReport(i, 1)
Next i
'----------------------------------------------------------------------------------------
End With
'On réactive l'affichage
Application.ScreenUpdating = True
'On réactive le calcul automatique
Application.Calculation = xlCalculationAutomatic
End If
'--------------------------------------------------------------------
End Sub
resolu, et grace aux cours VBA
j'avoue, je suis content,
Jean Eric,
le pire c'est que je ne l'ai pas compressé, j'ai joins le fichier via l'icone joindre fichier.
Donc je ne comprend pas
Bonjour à tous,
Moi aussi, j'ai constaté ce phénomène ... je ne sais pas si cela se produit dès qu'un fichier atteint une certaine taille ... ou possède une certaine extension de fichier ...
Sébastien nous confirmerait ou infirmerait la chose ...
ric