VBA excel : Copier Coller la cellule et la cellule de la premier colonne si une condition est respectée

  • Auteur de la discussion ALEXENDER III
  • Date de début

ALEXENDER III

Nouveau membre
Bonjour,
Je vous sollicite car je fais face à un blocage.
L'idée est qu'a partir d'une date sous forme "JJ/MM/AAAA" écrite dans la cellule A2, une macro cherche la colonne corresponde à JJ entre C1 et AG1. Par exemple colonne P.
A ce stade, la macro balaye la colonne et a chaque fois qu'elle trouve un chiffre > 70, copie la cellule de la colonne P et de la colonne A (qui correspond au titre de la valeur) et les colle dans une deuxième feuille dans la colonne A et B sans sauter de ligne.

j'ai un petit bout de code mais qui me prend toute la colonne.

Code:
Sub copie_colle()
    Dim cel As Range         
    Dim source As Range       
    Worksheets("SAP").UsedRange.Clear                       
    Set source = Sheets("FA").Range("A1:AG122").EntireRow

    With Sheets("FA") 
        For Each cel In .Range("c3:c" & .Range("c" & .Rows.Count).End(xlUp).Row)
            If cel.MergeCells Then
                Set source = Union(source, cel.MergeArea.EntireRow)
            ElseIf cel.Value >= 70 Then
                Set source = Union(source, cel.EntireRow)
            End If
         Next
    End With
    
    source.Copy Worksheets("SAP").Range("A1")
    Worksheets("FA").Activate
    Worksheets("FA").Range("A1").Select 

End Sub

Je vous remercie.
 
Dernière édition:

drul

Obscur pro du hardware
Staff
Salut,
ça vient d'ou cette macro ???
Je ne vois que très peu de rapport entre elle et ce que tu cherches à faire ...
Pourquoi 70 ?
Pourquoi la boucle cherche t'elle uniquement dans la colonne C ?
Pourquoi tu copies les celulles "merger" ? (en as tu d'ailleurs ?)

Bref c'est pas un très bon départ ...

L'utilisation de union est à mon avis à éviter ici, Excel ne parvenant pas à copier des cellules non contiguë.
 

ALEXENDER III

Nouveau membre
Salut !
la macro vient d'une discussion sur ce site qui date de 2016.
Le 70 est un simple exemple pour mettre une condition (ca peut être >0). En fait, je suis sur un fichier dans lequel j'ai des données remontées automatiquement d'un système siemens que je veux ressaisir dans un autre système ! Le but de la macro est de préparer les données a basculer. (Je sais pas si je suis clair, j'essaie).
La boucle cherche uniquement dans la colonne C pour l'instant car j'essaie d'abord de faire une macro qui marche pour ce cas dans un premier temps, puis intégrer la partie qui compare JJ aux valeurs dans les cellules entre C1 et AG1. (a mon niveau ca me semble compliqué à faire d'un coup, j'essaie d'aller étape par étape).
Non je n'ai pas de cellules "merger".

Je m'en doutais bien que c'étais pas un bon départ :p ! Pourriez vous m'aider à restructurer tout ca s'il vous plait ?
 

drul

Obscur pro du hardware
Staff
Alors en l'occurence fait du copier-coller cellule à cellule,
Ce que je ne comprends pas c'est quel donnée tu veux reprendre dans ta deuxième et sous quel format ...

Un petit exemple avec deux print screen aiderais bien ...
 

ALEXENDER III

Nouveau membre
Voila, mon fichier s'organise comme ca.
Vous devez être connecté pour voir les pièces jointes.

si j'indique que je veux extraire les données du 05/05/2021
je souhaite que ma deuxième feuille s'organise comme ça.
Vous devez être connecté pour voir les pièces jointes.


Est ce que c'est plus clair ?
 

drul

Obscur pro du hardware
Staff
Ok,
Tu es conscient que c'est faisable sans macro ?
 

ALEXENDER III

Nouveau membre
ah bon ? non je sais pas
Pourriez vous m'en dire plus s'il vous plait ?
 

ALEXENDER III

Nouveau membre
En fait, j'ai du mal a imaginer comment il peut lire la date inscrite pour trouver la colonne correspondante dans laquelle il doit chercher des informations.
Un exemple, si je veux voir le 05 ou 07 je vais pas avoir la mêmes choses affichées.

Vous devez être connecté pour voir les pièces jointes.
 
Dernière édition:

drul

Obscur pro du hardware
Staff
Question pourquoi en A2 tu mets la date complète et pas juste le jour, comme dans ton tableau source ?

Tu as excel en français ?
 

ALEXENDER III

Nouveau membre
Je ne suis pas obligé de mettre la date complète, je croyais que c'étais simple d'extraire la partie JJ d'une date.
Cette feule va être utilisée par des personnes qui ne ne sont pas à l'aise avec Excel. j'essaie de simplifier cette feuille au mieux pour eux
 

drul

Obscur pro du hardware
Staff
Oui c'est facile,


Donc essaye de mettre en B7:
=RechercheH(Jour(A2);Sheet1!C1:T31;3;FAUX) (en remplaçant Sheet1 par le nom de ta feuille source)

Puis tu essayes avec différente date en A2
 

ALEXENDER III

Nouveau membre
D'accord, merci !
du coup pour avoir le titre correspondant à chaque valeur j'ai essaye dans A7 : =RechercheV(B7;FA!A1:T31;1;FAUX) mais ca m'affiche l'erreur :une valeur n'est pas disponible pour la formule ou la fonction
 

ALEXENDER III

Nouveau membre
Bonjour,
Ce que j'ai renseigné dans la case B7 me permet d'avoir ce qui est surligné en jaune.
Maintenant j'essaie d'avoir ce qui est entouré en rouge.
Vous devez être connecté pour voir les pièces jointes.

J'ai l'impression de vous avoir mal expliqué ce que j'essaie de faire, puis je vous réexpliquer à nouveau, autrement ?
Merci
 

drul

Obscur pro du hardware
Staff
Le tutoyement est de rigueur ici ;)
Pourquoi pas simplement "=FA!A3" ? tu connais ligne et colonne, donc va chercher en direct ...
Le plus simple est souvent le meilleur ...
 

ALEXENDER III

Nouveau membre
Oups ! Okkay !!
Justement je ne suis pas sensé connaitre la ligne !
Vous devez être connecté pour voir les pièces jointes.

Résultat :
Vous devez être connecté pour voir les pièces jointes.


Je veux qu'il me copie que les cellules pleines de la colonne du "jour" et leurs descriptions respectives.
Merci :D
 

drul

Obscur pro du hardware
Staff
Aaaaaahhh tu rajoutes une condition, si les cellules doivent en plus être non vide, ça complique forcément.

Je pensais que tu voulais récupérer toutes les données (ou en tous cas des données fixe) pour un jour, même si c'était vide.
Tu me confirme qu7e c'est bien ça ? tu peux me faire l'exemple ci dessus pour le jour d'avant ?
 

ALEXENDER III

Nouveau membre
Ouiiiiiiiiiiii c'est ca !
Je ne veux pas récupérer toutes les données ni des données fixes, je veux récupérer les données des cellules non vides.
Voici l'exemple pour le jour d'avant
Vous devez être connecté pour voir les pièces jointes.

C'est pour ca qu'une macro me semblait inévitable...
 

drul

Obscur pro du hardware
Staff
Ouais là ça complique en effet, désolé j'avais mal compris ...

La macro sera en effet le plus simple, (ça doit être possible des fomules, mais ça deviens trop complexe.
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 098
Messages
6 717 050
Membres
1 586 282
Dernier membre
Yannick3553
Partager cette page
Haut