Avec un petit fichier exemple c'est toujours plus facile de répondre. Même si tes explications sont claires, il nous faut recréer l'environnement pour le tester et t'envoyer une réponse cohérente. On ne sait pas si "11%" est du texte ou un résultat formaté...
Sub Copier()
Dim ligne&, c As Range
ligne = 3 'pour tester
Set c = Feuil1.Cells.Find("11%", , xlValues, xlWhole)
If Not c Is Nothing Then Feuil2.Cells(ligne, 3) = c.Offset(, 1)
End Sub
La feuille devis je pense est maintenant cohérente.
Pour mon souci j'aimerai avoir le code au moins pour total HT et je ferai le reste
Comme je l'ai expliqué, pour le fait que le nombre de lignes varient suivant le devis proposé je ne peux copier une cellule précise qui ne se retrouvera pas au meme endroit la fois suivante
je ne sais pas faire.
merci
cordialement
Comme je l'ai expliqué, pour le fait que le nombre de lignes varient suivant le devis proposé je ne peux copier une cellule précise qui ne se retrouvera pas au meme endroit la fois suivante
C'est bien pour cette raison qu'il faut nommer les cellules qu'on veut copier.
Voyez le fichier joint et les cellules nommées Total_HT et Total_TTC.
La macro affectée au bouton :
VB:
Sub Copier()
Dim lig&
lig = 1
With Sheets("TdB")
If .FilterMode Then .ShowAllData 'si la feuille est filtrée
While .Cells(lig, "F") <> ""
lig = lig + 1
Wend
.Cells(lig, "F") = [Total_HT]
.Cells(lig, "J") = [Total_TTC]
.Activate 'facultatif
End With '1ère cellule vide
End Sub
J'ai eu des problèmes avec votre fichier, il semble corrompu, il faudra sans doute le refaire.
Cette macro, plus simple, va bien aussi, fichier (2) :
VB:
Sub Copier()
With Sheets("TdB")
If .FilterMode Then .ShowAllData 'si la feuille est filtrée
With .[A1].CurrentRegion
.Cells(.Rows.Count + 1, 6) = [Total_HT]
.Cells(.Rows.Count + 1, 10) = [Total_TTC]
End With
.Activate 'facultatif
End With '1ère cellule vide
End Sub
Cette macro, plus simple, va bien aussi, fichier (2) :
VB:
Sub Copier()
With Sheets("TdB")
If .FilterMode Then .ShowAllData 'si la feuille est filtrée
With .[A1].CurrentRegion
.Cells(.Rows.Count + 1, 6) = [Total_HT]
.Cells(.Rows.Count + 1, 10) = [Total_TTC]
End With
.Activate 'facultatif
End With '1ère cellule vide
End Sub