MsgBox + Collage de données dans cellule

Everlast03

XLDnaute Occasionnel
Bonjour,

Je vous explique ce que je voudrais réaliser le plus clairement possible...
En fait je voudrais que lorsque l'utilisateur entre le nombre "1" dans une cellule de la feuille2, il y ait un message qui apparaisse en lui disant de bien vouloir coller ses valeurs dans la feuille1. En plus de ça je voudrais qu'il se retrouve directement (lorsqu'il aura cliqué sur "OK") devant la cellule de la feuille1 dans laquelle il doit faire son "coller"
Cette opération pourra être répétée (2,3,4...)

J'espère avoir été assez clair...
N'hésitez pas à ma poser des questions si ça ne l'est pas ...

Merci d'avance !
 

Everlast03

XLDnaute Occasionnel
Re : MsgBox + Collage de données dans cellule

Donc pour l'instant j'suis parti sur une base de comparaison de colonne mais je sais pas si je suis sur la bonne voie :

Sub comparerdonnees()
Dim ligne, colonne, compteur As Integer
'test effectué sur la 1ére colonne
colonne = 3
ligne = 1
'trouve le numéro de la dernière ligne non vide pour limiter la boucle
compteur = Sheets("Feuil1").Columns("C:C").Find("*", Cells(ligne, colonne), , , xlByRows, xlPrevious).Row
For ligne = 1 To compteur
'comparaisons des données
If Sheets("Feuil1").Cells(ligne, colonne) = Sheets("Feuil2").Cells(ligne, colonne) Then
Sheets("Feuil1").Cells(ligne, colonne + 1) = Sheets("Feuil2").Cells(ligne, colonne)
End If
Next
End Sub

Tu as bien compris ce que je voulais faire ? En fait je voudrais même (pour que ca soit plus simple) a partir de la vitesse rentrée dans la feuille "rotor" ainsi que le numéro (de marche) trouver les lignes correspondantes dans la feuille "données brutes"...

Merci d'avance de ton aide ... Je suis en pleine galère..

PS : Je suis en stage pour un DUT Mesures Physiques et je fais que de l'Informatique ... =/
 
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : MsgBox + Collage de données dans cellule

Re

pour rechercher une valeur, pourquoi ne pas te servir de la méthode "find", que je t'avais proposé.... A mon avis plus rapide qu'une boucle... te renverra la cellule qui te permettra de déterminer le numéro de la ligne....
 

Everlast03

XLDnaute Occasionnel
Re : MsgBox + Collage de données dans cellule

Ça donnerait quoi ?
Je sais pas si tu as bien regardé, en fait sous les conditions que :
  1. il y ait la même vitesse
  2. il y ait le même numéro de marche

La macro prendrait la valeur dans données brutes, puis viendrait les coller dans les colonnes F/G/H/I ...
Tu comprends ?
Et appliquer ça pour tous ...
 

Pierrot93

XLDnaute Barbatruc
Re : MsgBox + Collage de données dans cellule

Re,

j'avais zappé la double condition... regarde le code ci-dessous, à adapter à ton besoin, t'aidera peut être....

Code:
For ligne = 1 To compteur
If Sheets("Feuil1").Cells(ligne, colonne) = Sheets("Feuil2").Cells(ligne, colonne) Then
    If Sheets("Feuil1").Cells(ligne, colonne + 1) = Sheets("Feuil2").Cells(ligne, colonne) Then
        Sheets("Feuil1").Cells(ligne, colonne).Resize(, 4).Copy
    End If
End If
Next
 

Everlast03

XLDnaute Occasionnel
Re : MsgBox + Collage de données dans cellule

Donc si j'ai bien compris dans le cas de la feuille que je t'ai joint ça donnerait :

Code:
Sub comparerdonnees()
Dim ligne, colonne, compteur As Integer
'test effectué sur la 1ére colonne
colonne = 3
ligne = 1
'trouve le numéro de la dernière ligne non vide pour limiter la boucle
compteur = Sheets("Rotor").Columns("B:B").Find("*", Cells(ligne, colonne), , , xlByRows, xlPrevious).Row
For ligne = 1 To compteur
If Sheets("Rotor").Cells(ligne, colonne) = Sheets("Données Brutes").Cells(ligne, colonne) Then
    If Sheets("Rotor").Cells(ligne, colonne + 1) = Sheets("Données Brutes").Cells(ligne, colonne) Then
        Sheets("Rotor").Cells(ligne, colonne).Resize(, 4).Copy
    End If
End If
Next
End Sub

J'ai une erreur 13 sur :
Code:
compteur = Sheets("Rotor").Columns("B:B").Find("*", Cells(ligne, colonne), , , xlByRows, xlPrevious).Row
 

Pierrot93

XLDnaute Barbatruc
Re : MsgBox + Collage de données dans cellule

Re,

pas moi qui t'ai donné cette ligne... tu avais le message avant d'avoir modifié le reste ???? pour la dernière ligne j'utiliserais ceci, s'appliquera à la feuille active :

Code:
y = Cells.Find("*", , xlValues, , 1, 2, 0).Row
 

Pierrot93

XLDnaute Barbatruc
Re : MsgBox + Collage de données dans cellule

Re,

A noter tout de même, dans le code que tu donnes, "Cells(ligne, colonne)" s'applique à la feuille active, ce qui peut être contradictoire si la recherche s'effectue sur une autre feuille "Sheets("Rotor").Columns("B:B")."

Il faut dans ce cas préciser également le nom de la feuille :

Code:
compteur = Sheets("Rotor").Columns("B:B").Find("*", [COLOR="Red"]Sheets("Rotor").[/COLOR]Cells(ligne, colonne), , , xlByRows, xlPrevious).Row

@+
 

Everlast03

XLDnaute Occasionnel
Re : MsgBox + Collage de données dans cellule

Je pense que je me suis mis dans une belle galère en fait ...
Est ce que tu vois ce que je veux faire exactement ?
Sinon je ré-explique mieux si tu as le classeur EXCEL sous les yeux tu comprendra facilement ...

Il faut que je retrouve B12 (rotor) dans colonnes B de données brutes.
Une fois celle-ci trouvée, on peut alors chercher la vitesse D12 (rotor) dans F données brutes.

Une fois que j'ai ça, je prend la valeur de H (si mon F précédemment trouvé est F35, je prend H35 et je l'envoie dans F12 puis je retourne sur la feuille donnée brute et je prend H35+9 et je l'envoie dans I12, puis H35+1 puis l'envoie dans J12, puis H35+10 a envoyer dans J12...)

J'espère que c'est pas trop compliqué ...

Merci d'avance :eek:
 

Pierrot93

XLDnaute Barbatruc
Re : MsgBox + Collage de données dans cellule

Re

dans "donées brutes" colonne B, il n'y a qu'une valeur en l'occurence 1, pas facile de travailler sur un tel fichier surtout lorsque l'on débute.... Le plus facile pour attaquer des données, est de bien construire sa base de donnée.... A savoir pour toutes les lignes, la colonne B devrait être renseignée...
 

Everlast03

XLDnaute Occasionnel
Re : MsgBox + Collage de données dans cellule

Bonjour,

En fait la colonne B est renseignée une fois par marche, c'est à dire que ici pour la marche 1, il y a 2 relevés (2 vitesses de rotation différentes). Pour la 2 il pourrait y en avoir 5 (mais le nombre "2" n'apparaitrait qu'une fois...)

Comment puis-je faire ?

Cordialement
 
Dernière édition:

Everlast03

XLDnaute Occasionnel
Re : MsgBox + Collage de données dans cellule

Bonjour,

Comment va depuis le temps ?

J'ai une petite question, je voudrais faire un test avec les conditions suivantes :

  • Il faut que la colonne B et C ne soient pas vides pour que l'on prenne la valeur de B

Cordialement

PS : J'ai essayé de faire ça en utilisant le "compteur" donné précédemment, mais je n'arrive pas à dire que je veux prendre la valeur de B correspondant à la ligne utilisée...
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 338
Messages
2 087 396
Membres
103 534
dernier inscrit
Kalamymustapha