Récupérer une valeur et la renvoyer sur une autre cellule au format nombre

Bonjour les pro du VBA,

J'ai un USF qui me permet d'ajouter des numéros de bon de commande au besoin. Le numéro du BC vient s'ajouter en colonne ED (au format texte (j'ai besoin que ce soit sous ce format là)) et au format "hypertexte" en GZ. (pour ouvrir le pdf lié).

J'ai besoin d'un code qui fait la chose suivante :

Report du numéro de BC correspondant en colonne H au format nombre ou standard - --> Car j'ai un onglet pour publiposter qui vient récupérer la valeur en H. Je ne peux pas mettre un report de cellule "=EDxxx" et il faut impérativement le format standard ou nombre (sinon le publipostage ne se fait pas)

Je vous remercie par avance pour votre aide.

Une idée m'est venue. j'ai résolu ce problème :

- Copier le code qui renvoie en l'info en ED (colonne qui est au format texte)

- Le coller en dessous avec un renvoi en H (colonne qui est au format nombre)

Bonjour,

ce matin j'ai ouvert votre fichier et que ce soit la colonne H ou bien la colonne ED, lorsque l'on enlève les alignements choisis pour revenir à un alignement par défaut d'Excel, les deux données sont alignées à droite c'est à dire numérique...
Une question : pourquoi un chiffre doit il être en format texte ?

@ bientôt

LouReeD

Bonjour,

Oui en effet, sur le fichier test que j’ai envoyé, j’ai oublié de passer la colonne en nombre.

Pourquoi: parce que je peux être amené à incrémenter des BC en alphanumérique (ex 606 AR) (en colonne ED)

Et bien un format "par défaut" ou standard sous une feuille Excel suffit à faire cela sans aller changer trop "loin" la forme de ce qui est écrit.

Si dans une cellule vous avez 152 et dans une autre LRD, alors en concaténant les deux vous avez =CONCATENER(A1;" ";B1) = 152 LRD (j'avoue cela fait beaucoup de LouReeD ) et les trois cellule sont au format standard sous Excel.
personnellement je trouve que le format TEXTE apporte beaucoup plus de problème qu'il en résout, mais ce n'est que mon avis !

@ bientôt

LouReeD

Bonjour,

En fait la manip que j'ai essayée plus haut fait planter quand j'ajoute un bon de commande. J'ai donc annulé et me retrouve tjs avec la même problématique.

Il faut absolument que :

Quand j'ajoute un nouveau Bon de commande de puis le USF, ce dernier aille EN MÊME TEMPS, s'incrémenter

- A la dernière cellule non vide de "H" en nombre

- A la dernière cellule non vide de "ED" en nombre (et Effectivement, je prendrai votre méthode pour concatener avec deux nouvelles colonnes)

Merci :)

Si vous voulez une données de TextBox dans une cellule Excel, en format nombre, alors il "suffit" d'indiquer à VBA de quel format est ce nombre avec l'instruction CDbl par exemple qui permet de transcrire une valeur avec décimal ou pas :

Range("E5") = CDbl(TextBox1.Value)

Voyez si cela peut suffire à répondre à votre demande.

@ bientôt

LouReeD

Bonjour,

En fait quand j'ouvre le USF, le nouveau numéro de bon de commande apparait automatiquement dans le textbox20. Lorsque je clique sur le commandbutton5, il est automatiquement incrémenter sur la première cellule vide la colonne ED. (Ex: En ED 700 c'est le numéro de BC 608, si j'ouvre le USF apparaitra dans le textbox20 le numéro 609. En cliquant sur 'ajouter BC', ce dernier s'incrémente en ED 701. etc etc etc). Il faut donc cette incrémentation se fasse de la même manière sur la colonne H.

Ci dessous le code de Ergotamine :

'Ajouter un nouveau BC'
Private Sub CommandButton5_Click()
Application.ScreenUpdating = False
Dim L%
With Worksheets("BC")
    L = .Range("ED" & .Rows.Count).End(xlUp).Row + 1
    .Cells(L, 134) = CStr(Me.TextBox20)
    Me.ComboBox1.AddItem Me.TextBox20
    If InStr(1, .Cells(L, 134), " ") = 0 Then
        Me.TextBox20 = .Cells(L, 134) + 1
        Else
        Me.TextBox20 = Left(.Cells(L, 134), InStr(1, .Cells(L, 134), " ") - 1) + 1
    End If
End With
Call UserForm_Initialize
Application.ScreenUpdating = True
End Sub
Rechercher des sujets similaires à "recuperer valeur renvoyer format nombre"