Trouver la date et copier

Bonsoir, mon problème et une macro que je n'arrive pas a modifier car je ne la comprend pas, Dans ma feuille "Total" je trouver la première cellule vide en colonne A je me positionner une cellule au dessus et je sélectionner la cellule A et cellule C à AN et efface les données mais mon problème se trouve que pour éviter les erreurs j'ai du mettre la date du jour en colonne A et mon programme recherche la date de ma saisie qui se trouve sur une autre feuille copie les données va sur la feuille "Total" cherche la date se positionne deux cellule à droite et copie les données C à CN j’espère que je suis assez claire merci d'avance

Sub EffacerLigneTotal()

Dim Ligne As Long

  With Sheets("Total")
    Ligne = .Range("A" & Rows.Count).End(xlUp).Row
    While Not IsDate(.Range("A" & Ligne))
      Ligne = Ligne - 1
      If Ligne = 0 Then Exit Sub
    Wend
    .Range("A" & Ligne & ",C" & Ligne & ":HV" & Ligne).ClearContents
  End With
  'Dim Ligne As Long

  With Sheets("Expéditions Balzer Jour")
    Ligne = .Range("A" & Rows.Count).End(xlUp).Row
    While Not IsDate(.Range("A" & Ligne))
      Ligne = Ligne - 1
      If Ligne = 0 Then Exit Sub
    Wend
    .Range("A" & Ligne & ":AN" & Ligne).ClearContents
  End With

End Sub

Salut,

A voir le nombre de réponses que tu as reçues, je pense ne pas être le seul à n'avoir rien compris Bon, je n'ai pas trop cherché non plus

Si une photo vaut 1000 mots, un fichier Excel en vaut 10'000

Je peux voir le tien ?

Cordialement.

Bonjour et merci, mais je ne peux pas mettre mon fichier Excel en laissant que les trois feuilles concerner j'arrive à 1,53 Mo bon mais j'ai trouvé un code qui marche en bidouillant mais je ne sais pas comment faire sur mes trois feuilles à part le recopier 3 fois

Mon bute rechercher et de trouver la date du jour sur mes feuille me déplacer de 2 cellules a droite et selectionner a partir de la cellule actif la ligne et l'éffacer et sa sur mes trois feuilles

Le nom de mes feuilles son " Total " " Récap envoie " " Expéditions Jour "

À et comment mettre une plage car là je sélection la ligne complète

Et mon code

Sub essai()

Sheets("Total").Select         ' Ouvre la feuille Total
Range("A1").Select             ' Va a la colonne en A1

' +------ Recherche de la date du jour ----------------------------+

Dim Ligne

  Ligne = Application.Match(CSng(Date), Columns("A"), 0)
  If Not IsError(Ligne) Then
    Range("A" & Ligne).Select
  Else

  MsgBox "Date " & Date & " non trouvée"

  End If

  ActiveCell.Offset(0, 2).Select   ' et va de 2 cellules à droite

  Range(ActiveCell, ActiveCell.End(xlToRight)).Select  

End Sub
image

Re,

Afin de réduire la taille d’un fichier, tu peux ne laisser que les 10 lignes nécessaires à ta démonstration au lieu des 30'000 lignes que comportent chaque feuille, tu peux supprimer les mises en forme conditionnelles, tu peux supprimer les bordures, etc.

Ensuite, tu peux passer par le site C-Joint http://www.cjoint.com/ qui permet quand même de placer des fichiers bien gros.

Sinon tu peux aussi l’envoyer en privé.

Désolé, mais sans ton fichier je ne lis même plus tes textes.

Amicalement.

Bonjour Yvouille voilà mon fichier je n'ai laisser que qu'elle que ligne mon fichier couvre l'année merci d'avance

6005.xlsm (289.00 Ko)

Salut,

Merci beaucoup d’avoir fourni ton fichier.

Dans ton premier message, tu as placé une macro intitulée Sub EffacerLigneTotal() mais dans ton deuxième message, tu prétends ne plus t’en soucier car tu as maintenant une macro intitulée Sub essai() qui est supposée fonctionner à part un dernier petit détail.

Je ne me suis donc pas du tout intéressé à la macro Sub EffacerLigneTotal() et lorsque j’ai voulu lancé ta seconde macro, ça commence par sélectionner la feuille "Total IonBond" qui n’est pas présente dans ton fichier. Difficile d’aller plus loin !

Ne veux-tu pas me fournir un fichier complet par message privé (tu m’écris un courriel à l’aide de l’icône ‘Enveloppe’ en dessous de mon pseudo) ou fournis-moi sur le fil un fichier avec toutes les feuilles nécessaires.

A te relire.

Bonjour Yvouille j'ai mis mon fichier sur le lien " http://www.cjoint.com/ "que tu ma donner bonne réception @+

Salut,

Reste sur le fil pour continuer la discussion, sinon on en perdra l'historique.

Tu m'as écrit ceci en privé :

Bonjour Yvouille, oui j'ai plusieurs saisie dans mon fichier on choisie "

BALZER " ou " ION-BOND " tu peux remplacer dans la macro "Total Ion-Bond "

par " Total " merci pour ton aide

... mais je ne comprends pas trop ce que tu veux dire.

Je comprendrais éventuellement mieux si j'avais ton fichier à Disposition, mais tu n'as pas copier-coller correctement le lien que t'a créé le site C-Joint pour que j'ai accès à ton fichier. Tu m'as simplement fourni le lien que je t'avais moi-même fourni

A te relire.

Erreur de postage

Je corrige ma réponse et reviens d'ici 1 à 24 heures.

Désolé.

Re,

Tes demandes sont d’une imprécision désolante et il faut faire preuve de beaucoup de bonne volonté pour ne pas t’envoyer paitre !!

J’ai répertorié toutes tes feuilles sur la nouvelle ‘Feuil2’ ci-jointe et tu peux chercher pendant une heure si tu veux, tu n’y trouveras pas ta feuille ‘Expéditions Jour’ mentionnée dans ton texte.

Du reste de ton texte, j’ai vaguement compris que tu désirais supprimer certaines plages de feuilles bien précises et ceci le jour concerné.

Je te propose donc la macro ‘Essai_Bis’ placée dans le même module que ta macro ‘Essai’ et qui fait ceci :

Elle passe en revue toutes les feuilles et ne s’intéresse qu’aux deux feuilles nommées "Total" et "Récap envoie" (Tu peux toi-même compléter avec d’autres noms de feuilles à traiter), elle recherche la date du jour sur les diverses feuilles visitées et efface la plage C:E de la ligne de la date du jour. Tu peux également adapter cette plage en fonction de tes besoins.

Dans le fichier ci-joint, j’ai placé des données dans les feuilles "Total" et "Récap envoie" qui te permettent de tester ma macro. Va éventuellement d’abord voir ces données en place avant de lancer la macro afin d’en voir l’effet par la suite.

Si je suis complètement à côté, tu devras être beaucoup plus précis dans tes explications.

Amicalement.

https://www.cjoint.com/c/EDvvUB1TXSU

Bonjour Yvouille et merci pour le temps passée sur mon fichier, je vais essayer d’être plus clair voilà si il y a eu une erreur de saisie de données j’aimerais mettre un bouton pour effacer les données saisie du jour ( une saisie par jour ) sur la feuille " Total " effacer a partir de la colonne C et toute la ligne, sur la feuille " Récap envoie " de la colonne B et toute la ligne, et sur la feuille " Expédition Balzers Jour " de la colonne C à la colonne AO

Et adapter la macro pour les feuilles " Total IonBond " " Récap envoie IonBond " & " Expédition IonBond Jour "

Mon fichier et 2 en 1 " Balzer " et " IonBond " mais on saisie sur un ou l'autre, les 2 fichiers sont complétement indépendant.

J'ai essayer ta macro mais rien ne ce passe ?

J'ai fait un essai avec se code dit moi si le principe et ok

Sub essai()

' +------ Recherche de la date du jour ----------------------------+

Sheets("Total").Select         ' Ouvre la feuille Total
Range("A1").Select             ' Va a la colonne en A1

Dim Ligne

  Ligne = Application.Match(CSng(Date), Columns("A"), 0)
  If Not IsError(Ligne) Then
    Range("A" & Ligne).Select
  Else

    MsgBox "Date " & Date & " non trouvée"

  End If

' +------ Fin de Recherche de la date du jour ---------------------+

 ActiveCell.Offset(0, 2).Select                        ' et va de 2 cellules à droite
 Range(ActiveCell, ActiveCell.Offset(0, 228)).Select   ' selection a partir de la ligne active et 200 colonne a droite
 Selection.ClearContents                               ' efface les données

 Range("C1").Select                                    ' Va a la colonne en C1

End Sub

Salut,

Paldor a écrit :

J'ai essayer ta macro mais rien ne ce passe ?

Tu as alors mal testé. Si tu Lances mon code, les plages C:E des lignes du jour courant des feuilles masquées "Total" et "Récap envoie" sont effacées.

Je crois que l’on ne parle pas le même langage Je te propose d’indiquer ton fil comme résolu et d’en recommencer un autre avec ta demande.

Amicalement.

Bonjour Yvouille ok je ferme le fil

Salut,

Merci de rester sur le fil pour continuer la discussion. Je te l’ai déjà dit mais tu ne sembles pas t’en soucier

Paldor a écrit :

Bonjour Yvouille, merci pour le temps passer à résoudre mon problème, oui ton code marche je n'avais pas de données à la date du jour, j’ai adapté ton code pour mes feuilles mais je ne le comprends pas si tu pouvais me le décortique merci d’avance.

Sub Essai_Bis3()

Dim Ligne As Integer, i As Byte

For i = 1 To Sheets.Count

    If Sheets(i).Name = "Total" Then

        Ligne = Application.Match(CSng(Date), Sheets(i).Columns("A"), 0)

        If Not IsError(Ligne) Then

            Sheets(i).Range("C" & Ligne & ":HA" & Ligne).ClearContents

        Else

            MsgBox "Date " & Date & " non trouvée"

        End If

    End If

Next i

' --- Feuille Récap envoie ----------

Dim h As Byte

For h = 1 To Sheets.Count

    If Sheets(h).Name = "Récap envoie" Then

        Ligne = Application.Match(CSng(Date), Sheets(h).Columns("A"), 0)

        If Not IsError(Ligne) Then

            Sheets(h).Range("B" & Ligne & ":DD" & Ligne).ClearContents

        Else
            MsgBox "Date " & Date & " non trouvée"

        End If

    End If

Next h

' --- Feuille Expéditions Balzers Jour ----------

Dim j As Byte

For j = 1 To Sheets.Count

    If Sheets(j).Name = "Expéditions Balzers Jour" Then

        Ligne = Application.Match(CSng(Date), Sheets(j).Columns("A"), 0)

        If Not IsError(Ligne) Then

            Sheets(j).Range("B" & Ligne & ":AO" & Ligne).ClearContents

        Else

            MsgBox "Date " & Date & " non trouvée"

        End If

    End If

Next j

End Sub

Tu as modifié mon code de manière partiellement incorrecte. Je te commente donc mon nouveau code – basé sur tes modifications et tes nouveaux désirs - ci-dessous :

Sub Essai_Ter()
Dim Ligne As Integer, i As Byte

For i = 1 To Sheets.Count ' On passe en revue toutes les feuilles ; une seule fois ça suffit :-)
    If Sheets(i).Name = "Total" Or Sheets(i).Name = "Récap envoie" Or Sheets(i).Name = "Expéditions Balzers Jour" Then ' On va plus loin uniquement si ça concerne l'une de ces trois feuilles
        Ligne = Application.Match(CSng(Date), Sheets(i).Columns("A"), 0) ' La recherche de la ligne est toujours la même

        ' Il n'est pas nécessaire que les feuilles soient visibles ou activées afin de les modifier

        If Not IsError(Ligne) Then ' Ce passage vient de toi
            If Sheets(i).Name = "Total" Then ' Traintement spécial pour la feuille 'Total'
                Sheets(i).Range("C" & Ligne & ":HA" & Ligne).ClearContents
            Else
            If Sheets(i).Name = "Récap envoie" Then ' Traintement spécial pour la feuille 'Récap envoie'
                Sheets(i).Range("B" & Ligne & ":DD" & Ligne).ClearContents
            Else
            If Sheets(i).Name = "Expéditions Balzers Jour" Then ' etc.
                Sheets(i).Range("B" & Ligne & ":AO" & Ligne).ClearContents
            End If
            End If
            End If
        Else
            MsgBox "Date " & Date & " non trouvée" ' Ce passage vient de toi
        End If
    End If
Next i

End Sub

Cordialement.

https://www.cjoint.com/c/EDxmlOD7pkY

Salut,

Comme déjà demandé deux fois, merci de rester sur le fil pour continuer la discussion.

Paldor a écrit :

Bonjour et merci à toi Trouver la date et copier marche nickel

Cordialement.

Rechercher des sujets similaires à "trouver date copier"