IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Trouver coordonées des cellules pour insérer des données copiées. [XL-2013]


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Décembre 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Technicien réseau

    Informations forums :
    Inscription : Décembre 2014
    Messages : 5
    Points : 2
    Points
    2
    Par défaut Trouver coordonées des cellules pour insérer des données copiées.
    Bonjour à tous,

    Comme une image vos mieux que des mots, je vous mets une copie d''écran de mon problème

    Nom : excel.jpg
Affichages : 217
Taille : 142,4 Ko

    Alors voici le cheminement :

    1) Je sasie des données dans les colonnes "Ref", "Désignation" et "Date"
    2) En colonne E et F il y a des formules EQUIV qui calcul le numéro de colonne où se trouve la date (VERT) et le numéro de ligne où se trouve la quantité (JAUNE).
    3) Une macro vba recopie les quantités en colonne C en dessous des bonnes dates dans la partie droite "Planning". (en utilisant les coordonées colonne/ligne avec les infos en colonne E et F).
    4) Une autre macro vba insert automatiquement le nombre de désignation en colonne B (BLEU) + le mot "BBB" entre chaque mot "AAA1", "AAA2" et "AAA3".

    Bon j'espère que je ne vous ai pas trop perdu ....
    ....Mon problème commence maintenant.


    En effet, je souhaiterai par une macro vba ou autre moyen, de localiser les cellules en ROUGE . Pour ainsi coller des données copier depuis une autre feuille.

    En remerciant par avance les experts qui pourront m'aider.

    Ps: petite erreur avec les pièces jointes ==> ne pas tenir compte de la deuxième image en fin de post
    Images attachées Images attachées  

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juillet 2015
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2015
    Messages : 32
    Points : 25
    Points
    25
    Par défaut
    Bonjour oijkn,

    Alors je ne suis pas un grand expert mais je pense avoir saisi ce que tu souhaites.

    Pour les localiser j'utiliserai simplement (si ton onglet est "Feuille1") :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Sub Localiser()
     
    Dim cell As Object
    For Each cell In Sheets("Feuille1").UsedRange
        If cell.Interior.ColorIndex = 3 Then
            ' Ici mettre les instructions pour coller tes données
        End If
    Next
     
    End Sub

  3. #3
    Candidat au Club
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Décembre 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Technicien réseau

    Informations forums :
    Inscription : Décembre 2014
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Merci pour ta réponse, mais je me suis peut être mal exprimé: en fait j'ai mis en rouge les cellules pour une meilleur compréhension. Dans ma feuille elles sont vides, et j'aimerai les localiser !

    Wait and see....

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juillet 2015
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2015
    Messages : 32
    Points : 25
    Points
    25
    Par défaut
    Haha, je me disais aussi, c'était trop facile !

    Pourquoi ne choisis-tu pas une cellule de départ que tu incrémenterais par une boucle For ?

  5. #5
    Candidat au Club
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Décembre 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Technicien réseau

    Informations forums :
    Inscription : Décembre 2014
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Parce que le nombre de cellule désignation (BLEU) est variable (dans l'exemple il y en à trois mais ça pourrait être 8), donc le nombre de cellule entre chaque "AAA" (VERT FONCE) est aussi variable. Donc je n'ai pas de case de départ ;(

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juillet 2015
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2015
    Messages : 32
    Points : 25
    Points
    25
    Par défaut
    D'accord je commence à mieux comprendre !

    Il suffit par contre d'utiliser la cellule M10 comme cellule de départ, d'affecter une variable à ton nombre de désignations et d'effectuer les Offset en conséquences.

    Je vais essayer de t'en coder une partie pour être plus clair !

    Tiens tu peux essayer ça, testé et approuvé de mon côté !

    Reste le problème du nombre de AAA que j'ai fixé à 3 car je savais pas comment est déterminé leur nombre, calcule les s'il est possible qu'il y en ait plus, ou explique moi d'où provient leur nombre !


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    Sub Loca()
     
    Dim NbDes, Lastligne, Repcol, Ofst, Nbaaa, compteur As Integer
     
    'Repcol = repèrecolonne
     
    'On Calcule le nombre de désignations
    Lastligne = Range("B2").End(xlDown).Row
    NbDes = Lastligne - 1
     
    'Nbaaa = nombre de AAA, je n'étais pas sûr que tu en aies que 3
    Nbaaa = 3
     
    Set Debut = Cells(10, Range("E2").Value)
     
    'Calcule le Nb de lignes à passer entre chaque case d'une même ligne
    Ofst = NbDes * 2 + 1
     
    'Initialise le compteur pour passer d'un repère colonne à l'autre
    compteur = 2
     
    ' 1ère colonne
    For i = 0 To Nbaaa - 1
    Repcol = Range("E" & compteur).Value
        Debut.Offset(Ofst * i, 0).Select
        ' mettre ici instructions sur la case selectionnée
    Next
     
    compteur = compteur + 1
    '2ème colonne
    For i = 0 To Nbaaa - 1
    Repcol = Range("E" & compteur).Value
        Set Debut2 = Cells(12, Repcol)
        Debut2.Offset(Ofst * i, 0).Select
        ' mettre ici instructions sur la case selectionnée
    Next
     
    compteur = compteur + 1
    '3ème colonne
    For i = 0 To Nbaaa - 1
    Repcol = Range("E" & compteur).Value
        Set Debut3 = Cells(14, Repcol)
        Debut3.Offset(Ofst * i, 0).Select
        ' mettre ici instructions sur la case selectionnée
    Next
     
    'ETC
     
    End Sub

  7. #7
    Candidat au Club
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Décembre 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Technicien réseau

    Informations forums :
    Inscription : Décembre 2014
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Youpi, j'ai trouvé la solution après une bonne journée d'essai ......
    .... voilà ma solution (pour ceux que ça intéresse!!!).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Sub cherche()
     
    Dim j As Integer
    Dim derniereLigne As Integer
    Dim k As Integer
     
    derniereLigne = Worksheets("feuil1").Range("A1:A65536").End(xlDown).Row ' mettre le nom de la feuil et le range souhaité
    k = 2 ' mettre le début du compteur sur la cellule souhaitée à la place de 2
     
    For j = 1 To derniereLigne Step 2 ' mettre le début du compteur sur la cellule souhaitée à la place de 1
    Set result = Cells(j + 1, 1).Find(What:="BBB", LookIn:=xlValues) ' mettre le texte recherché à la place de BBB
    valeur = Cells(k, 5).Value 'mettre la colonne souhaité à la place de 1
    Range(result, result).Select
    Sheets("feuil2").Range("E6:M6").Copy Sheets("feuil1").Range(result, result).Offset(, valeur)
    k = k + 1
     
    Next j
     
    End Sub

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] Macro pour colorier des cellules en fonction de données
    Par stephane12 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 23/05/2014, 07h51
  2. Réponses: 10
    Dernier message: 11/05/2014, 15h19
  3. Réponses: 45
    Dernier message: 24/11/2013, 00h35
  4. Réponses: 0
    Dernier message: 16/12/2010, 12h15
  5. Réponses: 6
    Dernier message: 28/01/2009, 13h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo