Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

erreur sur macro

  • Initiateur de la discussion Initiateur de la discussion gege21
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Re : erreur sur macro

Bonsoir gege21,

Apparemment, l'erreur sur la macro Transfaire est due au fait que la feuille 'données' est vide.
Quant à la macro 'date_heure', tu dois la déplacer dans Module1. Tu ne peux pas appeler une macro située dans un module de feuille depuis un userform

Espérant t'avoir aidé.

Cordialement.
 
Re : erreur sur macro

Bonjour gege21, salut Pierrot,

alors pourquoi sa ne marche pas ???

Bah le code était très bancal, voyez mes commentaires :

Code:
Sub date_heurs()
' ---------------------------
' - insertion date et heurs -
' -        colonne c        -
' ---------------------------
  Dim x As Long, i As Long, t, TT() As Double 'job75 : déclaré Double (pas As Date)
  Application.ScreenUpdating = False
  With Sheets("Données_brute")
    .Columns(3).Insert
    x = .Columns(1).SpecialCells(xlCellTypeConstants, 1).Count 'job75 : mettre des dates en colonne A...
    t = .Range("A2:B" & x + 1) 'job75 : enlevé Set, et manquait + 1 (on commence en ligne 2)
    ReDim TT(1 To x) 'job7 : manquait 1 To...
    For i = 1 To x
      TT(i) = t(i, 1) + t(i, 2) 'job75 : CDate était inutile...
    Next
    .Range("C1:C" & x) = Application.Transpose(TT) 'job75 : en ligne 1, sûr ?
    .Columns(3).NumberFormat = "dd/mm/yyyy hh:mm"
    .Columns(3).AutoFit
  End With
  'Call Module1.Transfaire 'mis en commentaire pour tester
End Sub
Maintenant il fonctionne 🙂

A+
 
Re : erreur sur macro

Re,

Vous ne croyez pas que ceci est plus simple :

Code:
Sub date_heurs()
' ---------------------------
' - insertion date et heurs -
' -        colonne c        -
' ---------------------------
  Application.ScreenUpdating = False
  With Sheets("Données_brute")
    .Columns(3).Insert
    .Columns(1).Copy .Columns(3)
    .Columns(2).Copy
    .Columns(3).PasteSpecial Paste:=xlPasteValues, Operation:=xlAdd 'addition
    .Columns(3).NumberFormat = "dd/mm/yyyy hh:mm"
    .Columns(3).AutoFit
  End With
  'Call Module1.Transfaire 'mis en commentaire pour tester
End Sub
Avec ce code on fait moins d'erreurs 🙂

A+
 
Dernière édition:
Re : erreur sur macro

Re,

Bon, j'ai testé en utilisant le fichier janv.10log.txt.

Voici les 2 macros que je propose finalement :

Code:
Sub date_heurs()
' ---------------------------
' - insertion date et heurs -
' -        colonne c        -
' ---------------------------
  Application.ScreenUpdating = False
  With Sheets("Données_brute")
    .Columns(3).Insert
    .Columns(1).Copy .Columns(3)
    .Columns(2).Copy
    .Columns(3).PasteSpecial Paste:=xlPasteValues, Operation:=xlAdd 'addition
    .Columns(3).NumberFormat = "dd/mm/yyyy hh:mm"
    .Columns("D:E").NumberFormat = "General" 'sinon elles ont le format Date
    .Columns.AutoFit
  End With
  Call Transfaire
End Sub
Code:
Sub Transfaire() 'Je préfèrerais Transfert...
Dim sh As Worksheet, deb&, i&, j%, P As Boolean
'Application.Calculation = -4135 'paraît tout à fait inutile...
Set sh = Sheets("données_brute")
With Sheets("données")
  deb = IIf(.[A1] = "", 1, .[A65536].End(xlUp).Row + 1)
  sh.UsedRange.Copy .Cells(deb, 1)
  .Columns.AutoFit 'dimensionnement des colonnes
  .Cells.Sort .[C1], xlAscending, Header:=xlGuess
  'suppression des lignes doublons
  For i = .[A65536].End(xlUp).Row To 2 Step -1
    P = True
    For j = 1 To 26
    If .Cells(i, j) <> .Cells(i - 1, j) Then P = False: Exit For
    Next
    If P Then .Rows(i).Delete
  Next
End With
'Application.Calculation = -4105
Sheets("Données_brute").Cells.Delete
End Sub
Il y a aussi une ligne pas terrible dans le code de l'UserForm, je vous laisse corriger :

Code:
For i = 1 To .[A1].End(xlUp).Row
A+
 
Re : erreur sur macro

bonjours Pierrot93,job75

génial sa marche a la perfection

job75 pour

Code:
For i = 1 To .[A1].End(xlUp).Row

j'ai mis
Code:
For i = 1 To 1

mais ne serait il pas plus simple d'aller directement dans le txtbox4 ???
mais la je ne c pas du tous comment
 
Re : erreur sur macro

Re,

Dans la macro CommandButton1_Click (bouton Téléchargement) de l'USF, si vous téléchargez un seul fichier à la fois :

- la boucle For i...Next ne sert plus à rien, supprimez-la

- la variable strFile ne sert à rien, remplacez-la par TextBox4

Et vous pouvez aussi supprimer la macro TextBox4_Change.

Là c'est plus qu'élémentaire dites donc...

A+
 
Re : erreur sur macro

juste pour ne pas faire un code bancale n'ai-ai pas fais d'erreur
(je pense pas vu que sa marche mais ont en c jamais )

Code:
Private Sub CommandButton1_Click()
Dim strPath$, strFile$, i As Long
strPath = UserForm2.Données_txt.Value
With ThisWorkbook.Sheets(1)
'For i = 1 To 1 '.[A1].End(xlUp).Row  ne sert plus a rien
'strFile = .Cells(i, 1).Text ne sert plus a rien et devient=>
strFile = UserForm2.TextBox4.Value
 Application.ScreenUpdating = False
        With ActiveWorkbook.Worksheets("Données_brute")
            With .QueryTables.Add(Connection:="TEXT;" & strPath & strFile, _
                Destination:=.[A65536].End(xlUp).Offset)
                .TextFileParseType = xlDelimited
                .TextFileTextQualifier = xlTextQualifierDoubleQuote
                .TextFileSemicolonDelimiter = True
                .TextFileColumnDataTypes = Array(1)
                .Refresh BackgroundQuery:=False
            End With
            .[a1].CurrentRegion.Columns.AutoFit
        End With
       ' Next i  ne sert plus a rien
        End With
Application.ScreenUpdating = False
Call Feuil7.date_heurs
End
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
313
Réponses
4
Affichages
176
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…